Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 авг 2022, 08:46

Обращение к процедуре как к функции

Автор Dr.Monty, 15 янв 2018, 09:32

0 Пользователей и 1 гость просматривают эту тему.

Dr.Monty

Здравствуйте. Конфигурации УПП 1.3.24.2. Я начинающий программист (прошу отнестись к этому с пониманием). Есть задача: ""Запретить перемещение товаров"(док ПеремещениеТоваров) если количество товаров превышает количество товаров в документе "ЗаказПокупателя"".
Вот моя работа:
//Проверка на перемещения кол-ва товара
      Запрос1 = Новый Запрос;
      Запрос1.Текст =
      "ВЫБРАТЬ
      |   ПеремещениеТоваровТовары.Номенклатура.Наименование,
      |   ПеремещениеТоваровТовары.Количество,
      |   СвязанныеДокументы.Ссылка
      |ИЗ
      |   Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары,
      |   КритерийОтбора.СвязанныеДокументы КАК СвязанныеДокументы
      |ГДЕ
      |   ПеремещениеТоваровТовары.Номенклатура.Наименование = &Наименование
      |   И ПеремещениеТоваровТовары.Количество = &Количество
      |   И СвязанныеДокументы.Ссылка = &Ссылка
      |;
      |
      |////////////////////////////////////////////////////////////////////////////////
      |ВЫБРАТЬ
      |   ЗаказПокупателяТовары.Номенклатура.Наименование,
      |   ЗаказПокупателяТовары.Количество
      |ИЗ
      |   Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
      |ГДЕ
      |   ЗаказПокупателяТовары.Номенклатура.Наименование = &Наименование1
      |   И ЗаказПокупателяТовары.Количество = &Количество1";
      РезЗапроса1 = Запрос1.УстановитьПараметр("Наименование");
      РезЗапроса2 = Запрос1.УстановитьПараметр("Наименование1");
      РезЗапроса3 = Запрос1.УстановитьПараметр("Количество");
      РезЗапроса4 = Запрос1.УстановитьПараметр("Количество1");
      РезЗапроса5 = Запрос1.УстановитьПараметр("Ссылка");
                РезЗапроса = Запрос1.Выполнить();
      Если РезЗапроса5 = Документы.ЗаказПокупателя Тогда
      
      Если РезЗапроса3 > РезЗапроса4 Тогда
         
         Сообщить ("Нельзя!!!");
         Отказ=Истина
         
      КонецЕсли;
           
   ////////////////////////////////////////////////////////
...

Поместил в модуль объекта документа "ПеремещениеТоваров" в событие обработчика "ПередЗаписью". При записи документа сообщается: "Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{Документ.ПеремещениеТоваров.МодульОбъекта(1629).
Добрые Люди, поправьте меня пожалуйста. Что я делаю не так?

Dr.Monty

Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{Документ.ПеремещениеТоваров.МодульОбъекта(1629)}: Обращение к процедуре объекта как к функции (УстановитьПараметр)


IL2016

жесть. и как вас взяли на работу программистом!
вперед на курсы, там расскажут, дадут книжку, прочитаете как контролировать остатки и т.п.

код для вашей задачи должен быть в ОбработкаПроведения, либо в процедуре , вызываемой из ОбработкаПроведения.
Использую учебную платформу 1С:Предприятие 8.3

Dr.Monty

Цитата: IL2016 от 15 янв 2018, 20:28
жесть. и как вас взяли на работу программистом!
вперед на курсы, там расскажут, дадут книжку, прочитаете как контролировать остатки и т.п.

код для вашей задачи должен быть в ОбработкаПроведения, либо в процедуре , вызываемой из ОбработкаПроведения.

Вам разве кто то сказал что я программистом работаю?

Norfolk

1. процедуру проверки, конечно, лучше перенести в обработчик проведения модуля документа
2. запрос очень бредовый, если честно...попробуйте в консоли запросов отладить ваш запрос и поймете почему.
3. если конфигурация не измененная, то документ заказ покупателя есть только в табличной части товаров, выступающий реквизитом "Документ резерва". В общих чертах если, то вам тогда нужно заглянуть в указанный документ и найти там соответствующую номенклатуру, сравнить количество, и выдать результат.
Если интересует более подробно - напишите в личку, помогу с проверкой.

Zaika

Цитата: IL2016 от 15 янв 2018, 20:28
жесть. и как вас взяли на работу программистом!
вперед на курсы, там расскажут, дадут книжку, прочитаете как контролировать остатки и т.п.

код для вашей задачи должен быть в ОбработкаПроведения, либо в процедуре , вызываемой из ОбработкаПроведения.
блин ну я учусь только, месяца 2 где-то курсы смотрела, но такого ещё не проходила, это мой первый проект
Добавлено: 23 апр 2020, 10:43


Цитата: IL2016 от 15 янв 2018, 20:28
жесть. и как вас взяли на работу программистом!
вперед на курсы, там расскажут, дадут книжку, прочитаете как контролировать остатки и т.п.

код для вашей задачи должен быть в ОбработкаПроведения, либо в процедуре , вызываемой из ОбработкаПроведения.
это внешняя обработка

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск