Плагин для заполнения кодов ОСУ

Заполнить коды ОСУ в УПД и УКД, а также доп.сведение «СвВыбытияМарк» можно с помощью плагина « Изменение контента УПД ». Подробнее о других возможностях плагина см. в статье Плагин «Изменение контента исходящих документов».

Для использования плагина:

Установите плагин «Изменение контента УПД»

Чтобы установить плагин:

  1. Запустите модуль Диадок для 1С.
  2. Нажмите на кнопку  «Настройки» и выберите «Расширенные настройки» → «Системные».
  3. Выберите «Использовать плагины».
  4. Перезапустить модуль.
  5. В расширенных настройках выберите «Плагины».
  6. По умолчанию список плагинов пустой. Нажмите на кнопку «Добавить».
  7. В библиотеке выделите курсором плагин «Изменение контента УПД» и нажмите  «Загрузить ».

     
  8. Плагин появится в списке.

Настройте плагин

Для настройки:

  1. В списке выберите плагин « Изменение контента УПД » и нажмите «Настройки ».
  2. Нажмите «Добавить», чтобы создать правило.
     
  3. Выберите сценарий «ЗаполнениеКодовОСУ»:
  4. Укажите описание правила и настройте заполнение кода ОСУ:
    • Если установлен флажок «Визуальная настройка», для вычисления кода ОСУ заполните дополнительные колонки в этой таблице:
      GTIN (Строка).
      Числитель (Число или Неопределено).
      Знаменатель (Число или Неопределено).
      ПризнакОСУ (Булево или Неопределено).В сценарии используется таблица значений «ТаблицаТоваров». Предзаполненные поля в таблице берутся из контента документа:
      Номенклатура.
      Характеристика.
      Серия.
      Упаковка.
      ЕдиницаИзмерения.
      Количество.
    • Если снят флажок «Визуальная настройка», заполните код.


      Примеры вариантов заполнения колонки GTIN

      
      // Если GTIN хранятся в регистре «Штрихкоды»
      // ОСУ_ЗаполнитьКолонку_ИзРегистраШтрихкодов(Результат.ТаблицаТоваров, «GTIN»);
      // Если GTIN лежит в реквизите «Штрихкод» справочника «Номенклатура»
      // ИмяРеквизитаНоменклатуры = «Штрихкод»;
      // ОСУ_ЗаполнитьКолонку_ИзРеквизитаНоменклатуры(Результат.ТаблицаТоваров, «GTIN», ИмяРеквизитаНоменклатуры);
      // Если GTIN указан в доп.свойстве «КодТовараДляОСУ» справочника «Номенклатура»
      // ИмяДопСвойства = «КодТовараДляОСУ»;
      // ОСУ_ЗаполнитьКолонку_ИзДопСвойстваНоменклатуры(Результат.ТаблицаТоваров, «GTIN», ИмяДопСвойства);
      
      

      Примеры вариантов заполнения колонки «ПризнакОСУ»

      
      // Если признак указан в реквизите «МолочнаяПродукцияБезВЕТИС» справочника «Номенклатура»
      // ИмяРеквизита = «МолочнаяПродукцияБезВЕТИС»;
      // ОСУ_ЗаполнитьКолонку_ИзРеквизитаНоменклатуры(Результат.ТаблицаТоваров, «ПризнакОСУ», ИмяРеквизита);
      // Если признак указан в доп.свойстве «ЭтоТоварОСУ» справочника «Номенклатура»
      // ИмяДопСвойства = «ЭтоТоварОСУ»;
      // ОСУ_ЗаполнитьКолонку_ИзДопСвойстваНоменклатуры(Результат.ТаблицаТоваров, «ПризнакОСУ», ИмяДопСвойства);
      

      Если нужны пересчеты, то заполняем колонки «Числитель» и/или «Знаменатель». Необходимо для расчета «хвоста» кода ОСУ (часть после символов «37»). Расчет такой: КодОСУ = GTIN + «37» +Строка(Количество * Числитель / Знаменатель).
      Примеры вариантов заполнения колонок «Числитель» и «Знаменатель»

      
      // Есди коэффициент указан в доп.свойстве «Коэффициент_ОСУ» справочника «Номенклатура». Может пригодиться в Бухгалтерии Предприятия 2.0/3.0
      // ИмяДопСвойства = «Коэффициент_ОСУ»;
      // ОСУ_ЗаполнитьКолонку_ИзДопСвойстваНоменклатуры(Результат.ТаблицаТоваров, «Знаменатель», ИмяДопСвойства);
      // Есди коэффициент указан в реквизите «Коэффициент» справочника «ЕдиницыИзмерения» / «УпаковкиЕдиницИзмерения». УТ, УПП, ERP, КА, УНФ.
      // ИмяРеквизита = «Коэффициент»;
      // ОСУ_ЗаполнитьКолонку_ИзРеквизитаУпаковки(Результат.ТаблицаТоваров, «Числитель», «Коэффициент»);
      
      

      Алгоритм заполнения СвВыбытияМарк схож с алгоритмом заполнения инфополей в сценарии «ДополнительныеСведения».
      Пример заполнения СвВыбытияМарк

      
      // Если у справочника «Контрагенты» добавлено доп.свойство «КодВыводаИзОборота» (число/строка)
      // Результат.КодВыводаИзОборота = ЗначениеДопСвойстваПоИмени(ДокументРеализации.Контрагент, «КодВыводаИзОборота»);
      

      Возможна также более тонкая настройка:
      Обход таблицы

      
      // Для Каждого Стр Из Результат.ТаблицаТоваров Цикл
      //  Стр.ПризнакОСУ = (Стр.Номенклатура.Родитель.Наименование = «Молочная продукция ОСУ»);
      //  Стр.GTIN = «123»;
      //  Стр.Количество = Стр.Упаковка.Коэффициент;
      //  Стр.Знаменатель = 2;
      // КонецЦикла;
      

  5. Сохраните настройки.

Чтобы выгрузить настройки в файл, нажмите.Файл сохранится с расширением *.json.


База знаний