Расширение было создано из-за следующих проблем при загрузке документов со штрихкодами упаковок из СБИС (может, и в других системах ситуация такая же):
- СБИС загружает штрихкоды в ТЧ "Штрихкоды упаковок" документа "Поступление товаров и услуг" как значение штрихкода и не создавая сами штрихкоды.
- Сопоставить вручную без сканера не всегда возможно, да и очень долго
- Обработка СБИС при создании номенклатуры не устанавливает признак маркировки
- Обработка СБИС при создании номенклатуры не устанавливает реквизит "Вид номенклатуры" (на момент тестирования)
- При создании реализации на основании поступления штрихкоды не переносятся, и мы опять тратим кучу времени на сопоставление
Порядок работы
Краткий порядок работы с расширением, подробности работы ниже в разделе "Основной функционал"
- Загрузить документ "Поступление товаров и услуг" в 1С при помощи обработки СБИС
- Скачать XML файл загруженного документа из СБИС.Онлайн
- Изменить вид операции загруженного документа в 1С на "Товары (Накладная, УПД)"
- Пометить флажками маркируемую продукцию для установки признака маркируемой продукции, нажать кнопку "Установить признак маркировки" (синяя стрелочка). Каждый вид маркировки отдельно
- Выбрать вид маркировки
- Выбрать вид номенклатуры
- Нажать кнопку "Создать штрихкоды упаковок"
- Проверить в разделе "Проверка и подбор" соотношения в колонках "в документе" и "в упаковках". Пустых, лишних быть не должно. В ТЧ "Товары" маркированные товары должны иметь зеленую марку. Если в одном документе имеется маркированный товар разных категорий (обувь и легкая промышленность), то при завершении проверки по одному виду, ненайденные штрихкоды будут удалены из ТЧ "Штрихкоды упаковок" документа (обнаружено при тестировании на версии БП 3.0.109.57)!
- Создать на основании загруженного документа документ "Реализация товаров и услуг"
- Увеличить цену на процент или ручками при необходимости
Основной функционал
Основной функционал представлен на форме документа "Поступление товаров и услуг" с видом операции "Товары (накладная, УПД)" в виде дополнительной колонки ТЧ "Товары" - флажок "Установить маркировку" и дополнительной группы кнопок командной панели ТЧ "Товары":
- Установить флажки (при выделении одной строки устанавливаются флажки на все строки, при выделении двух и более строк, устанавливаются флажки на выделенных строках)
- Снять флажки (поведение аналогично предыдущей команде)
- Установить признак маркировки:
- При запуске первым делом проверяется наличие установленных флажков.
- Далее выдается окно с выбором вида маркировки (отдельная форма в расширении, список маркировок взят из формы номенклатуры и описан в общем модуле расширения). Оставьте пустым для снятия ВСЕХ признаков маркировки
- Далее выдает запрос выбора реквизита "Вид номенклатуры". Если вид маркировки оставлено пустым, запрос вида номенклатуры игнорируется, программа переходит к обработке снятия признаков маркировки.
- Далее из ТЧ "Товары" выбираются только строки с флажками "Установить маркировку" и выбранным видом маркировки равным = Ложь.
- Список выбранных перебирается, проверяется нет ли другого установленного признака, если ошибок нет, то устанавливается наш признак и реквизит "Вид номенклатуры". Вид номенклатуры устанавливается только если одноименное поле карточки номенклатуры не заполнено!
- Создать штрихкоды:
- Предварительно нужно скачать XML файл счет-фактуры (можно реализовать функционал подключения по api и выгрузки от туда, но задачи такой не стояло и мне влом) и выбрать его после нажатия кнопки "создать штрихкоды", сделать это можно из обработки СБИС, если провалиться в документ:
- XML файл разбирается в необходимый расширению вид, первым делом сверяется номер документа, в случае расхождений обработка останавливается
- Далее идет перебор номенклатуры поставщика из XML файла:
- Проверка на наличие номенклатуры поставщика с таким идентификатором
- Возможен вариант без загрузки номенклатуры поставщика, если она не найдена, предпринимается попытка найти номенклатуру в справочнике "Номенклатура" по наименованию.
- Проверка владельца номенклатуры поставщика
- Если не совпадает, то пп 4.3.1.1
- Проверка наименования в базе и файле
- Если не совпадает, то пп 4.3.1.1
- Проверка наличия найденной номенклатуры из XML файла в ТЧ документа
- Проверка количества марок (штрихкодов) и количества номенклатуры (1 упаковка = 1 марке)
- Сравнивает наименование товара в XML документе (найденное значение по правилам выше) и наименование номенклатуры в строке ТЧ по номеру (добавлен счетчик)
- Проверка "а не создан ли штрихкод" и его наличие в ТЧ "Штрихкоды упаковок"
- Проверка "а не связан ли найденный штрихкод с другой номенклатурой"
- Проверка "а нет ли нескольких одинаковых штрихкодов"
- Создаем штрихкод и возвращаем в ТЧ "Штрихкоды упаковок"
- Проверка на наличие номенклатуры поставщика с таким идентификатором
- Предварительно нужно скачать XML файл счет-фактуры (можно реализовать функционал подключения по api и выгрузки от туда, но задачи такой не стояло и мне влом) и выбрать его после нажатия кнопки "создать штрихкоды", сделать это можно из обработки СБИС, если провалиться в документ:
- Отобразить ТЧ "Штрихкоды упаковок"
Данная команда создает (при отсутствии) элемент "Таблица формы", связывает его с ТЧ "Штрихкоды упаковок" и помещает его на форму после ТЧ "Товары". Также добавляется дополнительная колонка - номенклатура из карточки "Штрихкоды упаковок товаров" для наглядности. При создании формы документа "Поступление товаров и услуг" элемент не создается и не выводится на форму. При наличии элемента на форме, действие кнопки переопределяется - элемент меняет состояние видимости на противоположный от текущего.
- Сопоставить значения штрихкодов на командной панели ТЧ "Штрихкоды упаковок".
Данная команда предназначена для сопоставления значений с уже созданными ранее штрихкодами в справочнике "Штрихкоды упаковок номенклатуры". Например при создании реализации, получении корректировок и прочего. Команда проверяет каждую строчку, если "Штрихкод упаковки" не заполнен, то идет попытка заполнить. Если заполнен, но значения различаются, то идет попытка сопоставления, иначе строка пропускается. Если "штрихкод упаковки" не найден, то строка пропускается и выводится сообщение.
Внимание: дополнительные элементы (колонки ТЧ, кнопки, дополнительная ТЧ) формы добавляются только в случае наличия строк в скрытой ТЧ "Штрихкоды упаковок"
Также кнопка "Отобразить штрихкоды" из п.5 с функционалом из п.6 добавлена на командную панель на формах:
- документа "Реализация товаров и услуг" с типом "Товары"
- документа "Корректировка поступлений"
- документа "Корректировка реализаций"
Дополнительный функционал
В разделе Справочники=>Сервис добавлены 3 обработки, созданные для решения проблем созданных некорректной загрузкой пользователями. Для всех обработок общим является флажок "Отладка", установленный флажок имитирует поведение WhatIf ("Что если"), т.е. в сообщениях описывает что будет делать и с кем, но фактически никаких изменений обработка не вносит. При открытии формы обработки, безопасности для, отладка устанавливается в значение Истина.
Разбить номенклатуру поставщиков.
Пояснение:
При определенных настройках обработка СБИС при загрузке создает номенклатуру поставщика (если не найден по идентификатору), где идентификатор - код товара в в электронном документе (передается продавцом). Далее связывает созданную номенклатуру поставщика с номенклатурой по двум сценариям:
-
Ищет номенклатуру с наименованием равным наименованию из документа (наименование номенклатура поставщика)
-
Пользователь указывает свой вариант сопоставления (вариант по умолчанию, настраивается в настройках обработки СБИС)
И записывает соответствие в свою БД (dbf). Такая схема в случае маркировки крайне неудобна, т.к. за нашим "Кроссовки" может скрываться +100500 разных номенклатур поставщика.
Описание работы обработки:
Обработка сначала получает список карточек номенклатуры (напр. "Кроссовки"), которым соответствует более одной номенклатуры поставщика. Перебирая весь список, создает на каждую номенклатуру поставщика карточку номенклатуры (напр. "Кроссовки жен. БлюАйс"). Все поля, кроме наименования и полного наименования, заимствуются из оригинальной карточки ("Кроссовки"). Устанавливается связь карточка номенклатуры - номенклатура поставщика.
Удалить номенклатуру по документу поступления товаров и услуг
Пояснение:
При ошибочной загрузке или кривом сопоставлении иногда проще удалить карточки номенклатуры.
Описание работы обработки:
Обработка помечает на удаление все карточки номенклатуры упомянутые в ТЧ "Товары" документа "Поступление товаров и услуг" указанном в соответствующем реквизите формы обработки. Также помечаются на удаление карточки "Номенклатуры поставщиков" связанные с обработанной ранее номенклатурой. И собственно сам документ "Поступление товаров и услуг" с его счет-фактурой
ВНИМАНИЕ! так как СБИС зачем то держит свою БД с номенклатурой поставщика, то придется сбросить ее, иначе в следующий раз номенклатура не будет загружена!
Удалить неиспользуемые штрихкоды
Пояснение:
Дабы избежать дублирования, захламления и просто вычистить от ошибочной загрузки
Описание работы обработки:
Обработка выгребает все штрихкоды упаковок, которые не упоминаются в документах "Поступление товаров и услуг" и "Реализация товаров и услуг" и помечает их на удаление.
16.04.2022 | 1.0.5 | Протестирована на платформе 8.3.20.1789, конфигурация БП 3.0.109.57 |
25.04.2022 | 1.0.6 | Выявлена сказочная ситуация, когда поставщик присылает документ где все позиции имеют одинаковое наименование и код. Изначально система проверяла расхождение количества штрихкодов и количества товаров найденных по номенклатуре в таблице. Теперь идет попытка такого сравнения по номеру строки (пп 4.3.5.1). |
28.04.2022 | 1.0.7 |
Добавлена функция снятия признака маркировки (не указывать вид маркировки). Выявлена ошибка счетчика, исправлено. Выявлено пару мелких недочетов, исправлено. Для некоторых процедур и функция добавлены описания. Удалены неиспользуемые формы документов и справочников |
27.05.2022 | 1.0.8 |
Обнаружено, что сбис (или кто-то другой) создал как номенклатуру поставщика, так и номенклатуру контрагента с одинаковым идентификатором, но разными владельцами. В связи с этим добавлены пп 4.3.2.1 и пп 4.3.3.1. Также исправлена ошибка вызываемая в пп 4.3.4 при наличии полного дубля по наименованию найденному в пп 4.3.1.1. Обработка не останавливается, но и строка не обрабатывается, требуется удалить дубли. Протестирована на платформе 8.3.20.1789, конфигурация БП 3.0.112.34 |
11.10.2022 | 1.0.8 | Протестирована на платформе 8.3.22.1603, конфигурация БП 3.0.121.31 |
28.01.2023 | 1.1.1 |
Добавлена кнопка отображения штрихкодов на формы документов: Протестирована на платформе 8.3.22.1750, конфигурация БП 3.0.129.13 |