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

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

    Урок №3

    Верный старт / Урок №3 (Страница 2)
    Просмотр 5 сообщений - с 16 по 20 (из 20 всего)
    • Автор
      Сообщения
    • #3741

      FilonovEI
      Участник

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

      Задание:

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

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

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

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

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

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

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

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

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

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

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

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

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

      • Ответ изменён 7 лет, 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 всего)

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