Урок №3 - Верный старт

Заказать обратный звонок:



Урок №3

Верный старт / Урок №3 (Страница 2)

В этой теме 19 ответов, 10 участников, последнее обновление  Myavij 3 года/лет, 8 мес. назад.

Просмотр 5 сообщений - с 16 по 20 (из 20 всего)
  • Автор
    Сообщения
  • #3741

    FilonovEI
    Участник

    Здравствуйте! Нужна Ваша помощь, не могу решить (Понять домашнее задание БК20 №3)

    Задание:

    Создайте обработку «ДомашнееЗадание3». Эта обработка (разными кнопками)

    должна делать следующее:

    Изменить табличные части всех документов установка цен

    номенклатуры установив везде цену равную 1000

     Снять с проведения все установки цен номенклатуры в указанном

    периоде (период задается с помощью даты начала и окончания на

    форме обработки)

     Изменить цену для конкретного товара во всех документах

    установка цен номенклатуры — установить 5000. (Номенклатуру,

    которую будем менять выбираем на форме обработки – также как

    добавляли дату начала и дату окончания. Используем обход

    табличной части документа и вспоминаем как задавали условия –

    чтобы менять не все а только то, что нужно)

    • Ответ изменён 5 года/лет, 10 мес. назад пользователем  FilonovEI.
    #3749

    Выборка=Документы.УстановкаЦенНоменклатуры.Выбрать(,ВыборНоменклатуры); перепишите код как
    Выборка=Документы.УстановкаЦенНоменклатуры.Выбрать();
    Т.е. вообще параметра в методе выбрать не должно быть.

    #4415

    ssh1975
    Участник

    День добрый! Запутался вконец с последним пунктом домашнего задания… Вроде все сделал. Ввожу в строку наименование номенклатуры (например, Сахар). И ничего не происходит. Код привожу ниже. Что не так?

    Процедура ИзменениеЦеныНаСервере()
    	Выборка=Документы.УстановкаЦенНоменклатуры.Выбрать();
    	Пока Выборка.Следующий()Цикл
    		Объект1=Выборка.ПолучитьОбъект();
    		Для Каждого ТекСтр Из Объект1.Данные Цикл
    			Если ТекСтр.Номенклатура = ВыборНоменклатуры Тогда
    			ТекСтр.Цена = 5000;
    			КонецЕсли;
    		КонецЦикла;
    	Объект1.Записать();
    	КонецЦикла;
    КонецПроцедуры
    #4461

    Eva_vp
    Участник

    У меня с таким кодом поменялась цена, но только в одном, последнем документе по времени. Тоже не понимаю почему так((:

    Процедура ИзменитьЦенуНоменклатурыНаСервере()
    Выборка = Документы.УстановкаЦенНоменклатуры.Выбрать();
    Пока Выборка.Следующий() Цикл
    Документ = Выборка.ПолучитьОбъект();
    Для Каждого ТекСтрока из Документ.Данные Цикл
    Если ТекСтрока.Номенклатура = НоменклатураДляИзменения Тогда
    ТекСтрока.Цена = 5000;
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    Документ.Записать(РежимЗаписиДокумента.Проведение);
    Сообщить(ТекСтрока.Номенклатура);
    КонецПроцедуры

    #4454

    Myavij
    Участник

    Все равно с последним заданием не понятно

    ВОт этот код меняет все цены на 5000. Что ожидаемо

    &НаСервере
    Процедура Цена5000НаСервере()
    Выборка=Документы.УстановкаЦенНоменклатуры.Выбрать();
    Пока Выборка.Следующий()Цикл
    Объект1=Выборка.ПолучитьОбъект();
    Для Каждого ТекСтр Из Объект1.Данные Цикл
    ТекСтр.Цена=5000;
    КонецЦикла;
    Объект1.Записать(РежимЗаписиДокумента.Запись);
    КонецЦикла;

    КонецПроцедуры

    &НаКлиенте
    Процедура Цена5000(Команда)
    Цена5000НаСервере();

    КонецПроцедуры

    Как я вижу что нам требуется сделать

    1.Создать кнопку (имя неважно), которая запустит весь процесс
    2. Создать поле выбора с типом СправочникСсылка.Номенклатура
    3. По кнопке: Запрос ко всем табличным частям документов Установка цен с отбором Номенклатуры из поля на форме
    4. Обход результата запроса в цикле и, если Номенклатура = Номенклатуре в поле, то получаем документ объект, меняем цену на 5000, записываем документ объект

    Собственно вопрос с пунктом 3
    Мне кажется мы вообще это не изучали

    Если идти по более простому варианту

    создаем на форме обработки реквизит «ВыборНоменклатуры» тип «Строка» и ручками вводим наименование

    Тогда не могу понять почему не работает этот код. Я примерно такой же создал.

    Процедура ИзменениеЦеныНаСервере()
    Выборка=Документы.УстановкаЦенНоменклатуры.Выбрать();
    Пока Выборка.Следующий()Цикл
    Объект1=Выборка.ПолучитьОбъект();
    Для Каждого ТекСтр Из Объект1.Данные Цикл
    Если ТекСтр.Номенклатура = ВыборНоменклатуры Тогда
    ТекСтр.Цена = 5000;
    КонецЕсли;
    КонецЦикла;
    Объект1.Записать();
    КонецЦикла;
    КонецПроцедуры

Просмотр 5 сообщений - с 16 по 20 (из 20 всего)

Для ответа в этой теме необходимо авторизоваться.