Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 июн 2025, 11:51

ПОМОГИТЕ: Внести в Табличную часть Документа №2 из кода Документа №1.

Автор AnDr2024, 02 июн 2025, 10:02

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

AnDr2024

/// СКАНИРУЕМ ЭТИКЕТКУ СО ШТРИХ КОДОМ В ПОЛЕ ДОКУМЕНТА №1:

Процедура ПолеСканироваияПриИзменении(Элемент)
   Результат = ЭлементыФормы.ПолеСканирования.Значение;
   Запрос    = Новый Запрос;
   Запрос.УстановитьПараметр("КодЭтикетки", Результат);
   Запрос.Текст = "ВЫБРАТЬ
   |   ЗаказВПроизводствоОООБЕКЭтикетки.ШтрихКодЭтикетки,
   |   ЗаказВПроизводствоОООБЕК.Номер,
   |   ЗаказВПроизводствоОООБЕК.Дата,
   |   ЗаказВПроизводствоОООБЕКЭтикетки.НомерСтроки,
   |   ЗаказВПроизводствоОООБЕКЭтикетки.ФактСдачиОтк
    |ИЗ
   |   Документ.ЗаказВПроизводствоОООБЕК.Этикетки КАК ЗаказВПроизводствоОООБЕКЭтикетки
   |ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказВПроизводствоОООБЕК КАК ЗаказВПроизводствоОООБЕК
   |   ПО ЗаказВПроизводствоОООБЕКЭтикетки.Ссылка = ЗаказВПроизводствоОООБЕК.Ссылка
   |ГДЕ
   |   ЗаказВПроизводствоОООБЕКЭтикетки.ШтрихКодЭтикетки = &КодЭтикетки";
   
   Выборка = Запрос.Выполнить().Выбрать();   
   Пока Выборка.Следующий() Цикл     
   НомерЗаказа   = Выборка.Номер;           /// ПОЛУЧИЛИ НОМЕР ДОКУМЕНТА №2
   ДатаЗаказа    = Выборка.Дата;            /// ПОЛУЧИЛИ ДАТУ ДОКУМЕНТА №2
   Сканирование  = Выборка.ШтрихКодЭтикетки;
      
   КонецЦикла;
   Сообщить("Добавлен факт сдачи детали с этикеткой <"+ Результат + ", " + "Номер заказа" + " " + "-" + " " + НомерЗаказа + ", от " + ДатаЗаказа + "> ");        /// ПОЛУЧИЛИ СООБЩЕНИЕ В ДОКУМЕНТЕ №1

/// ДАЛЕЕ НУЖНО ПО НОМЕРУ И ДАТЕ В ДОКУМЕНТ №2 ВНЕСТИ ЗНАЧЕНИЕ «1» В ТАБЛИЧНОЕ ПОЛЕ «ЭТИКЕТКИ» - СТОЛБЕЦ «ФактСдачиОтк» СТРОКА «ШтрихКодЭтикетки»  ... ПРОБОВАЛ ТАК (НИЖЕ) – НЕ РАБОТАЕТ, ВИЖУ ЧТО ЧЕГО ТО НЕ ХВАТАЕТ, НЕ МОГУ СООБРАЗИТЬ..  ПРОШУ ПОМОЧЬ...
   
   //СтрокаТабличнойЧасти = Документы.ЗаказВПроизводствоОООБЕК.Этикетки;
   //Для каждого Строка из СтрокаТабличнойЧасти Цикл       
   //Если Строка.ШтрихКодЭтикетки = Сканирование тогда
   //   Строка.ФактСдачиОтк = "1";
   //КонецЕсли;
   //КонецЦикла;
         
КонецПроцедуры




sali


antoneus


AnDr2024

Документ №2 записан, строка заполнена, кроме "ФактСдачиОтк" -- в эту строку (по штрихКоду) и нужно вставить "1".
Скрин Документа №2 прилагаю.

У реквизита ФактСдачиОтк тип число -- скрин прилагаю.

antoneus

Процедура ПолеСканироваияПриИзменении(Элемент)
   Запрос    = Новый Запрос;
   Запрос.УстановитьПараметр("КодЭтикетки", ПолеСканирования);
   Запрос.Текст = "ВЫБРАТЬ
   |   ЗаказВПроизводствоОООБЕК.Ссылка,
   |   ЗаказВПроизводствоОООБЕК.Ссылка.Номер КАК Номер,
   |   ЗаказВПроизводствоОООБЕК.Ссылка.Дата КАК Дата,
   |   ЗаказВПроизводствоОООБЕКЭтикетки.НомерСтроки
   |ИЗ
   |   Документ.ЗаказВПроизводствоОООБЕК.Этикетки КАК ЗаказВПроизводствоОООБЕКЭтикетки
   |ГДЕ
   |   ЗаказВПроизводствоОООБЕКЭтикетки.ШтрихКодЭтикетки = &КодЭтикетки
   |   И ЗаказВПроизводствоОООБЕКЭтикетки.ФактСдачиОтк = 0";
   
   Выборка = Запрос.Выполнить().Выбрать();   
   Пока Выборка.Следующий() Цикл     
       ДокОбъект = Выборка.Ссылка.ПолучитьОбъект();
       стр = ДокОбъект.Этикетки.Найти(Выборка.НомерСтроки, "НомерСтроки");
       стр.ФактСдачиОтк = 1;
       ДокОбъект.Записать();
       Сообщить(СтрШаблон("Добавлен факт сдачи детали с этикеткой <%1, Номер заказа - %2, от %3>", ПолеСканирования, Выборка.Номер, Выборка.Дата));       
   КонецЦикла;
         
КонецПроцедуры

AnDr2024

antoneus, Ошибка вышла:

Ошибка при вызове метода контекста (Выполнить)
{Обработка.ПОСТстанковсЧПУБек2.Форма.ФормаПОСТстанковсЧПУБек2.Форма(29)}:   Выборка = Запрос.Выполнить().Выбрать();   
по причине:
{(10, 4)}: Синтаксическая ошибка "ЗаказВПроизводствоОООБЕКЭтикетки.ФактСдачиОтк"
<<?>>ЗаказВПроизводствоОООБЕКЭтикетки.ФактСдачиОтк = 0

antoneus

Я там сперва И пропустил, потом текст поправил, но, видимо, поздно)
Щас должно работать.

AnDr2024

antoneus, ошибку НЕ выдал, но и ничего не произошло: сообщение НЕ вышло и в Документе №2 в поле ФактСдачиОтк (выделено) тоже "1" не вышла.. Скрин прилагаю.

antoneus

Значит, не находит. Тип реквизита ШтрихКодЭтикетки какой?

AnDr2024


Теги:

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

Рейтинг@Mail.ru

Поиск