Всем привет!
Внешняя обработка была разработана на платформе 1С:Предприятие 8.3.24.1667.
При включении функциональной опции "Использование соглашений с клиентами" возникает необходимость заполнения Соглашения во всех документах продажи. Представленная обработка помогает это сделать.
Задача узкоспециализированная, как и все задачи в 1С. Компания длительное время работала без соглашений. Когда понадобилось перейти на учет комиссионных продаж, потребовалось для начала включить использование соглашений, по другому никак нельзя.
Индивидуальные соглашения с каждым контрагентом (партнером) включать необязательно. По задаче достаточно использовать одно типовое соглашение для документов продаж (с видом операции "Реализация"). Зададим его - и будем использовать.
Задача по заполнению Соглашений в документах продажи разбивается на несколько этапов.
1. Сначала мы тестируем заполнение Соглашения на одной реализации - вручную выбираем по одной реализации и нажимаем на кнопку "Заполнить реализацию". Смотрим, как ведет себя алгоритм заполнения, смотрим проводки реализации, смотрим связанные документы - не слетело ли что-нибудь.
Для этих целей есть раздел "Заполнить реализацию" - указывайте реализацию и проверяйте заполнение.
2. После тестов алгоритма, переходим ко второму этапу - когда надо заполнить Соглашения во всех реализациях, которые на момент включения функциональной опции "Использовать соглашения с клиентами" находятся в процессе подписания ЭДО.
Для этих целей есть раздел "Заполнить реализации с отбором по периоду и состоянию ЭДО" - описывать буду по своей задаче - указываем начало 2024 года и конец 2025 года. Состояние ЭДО указываем "не равно Завершен" - таким образом будут обработаны все реализации, находящиеся в процессе подписания ЭДО.
3. Третий этап - вам надо обработать все оставшиеся реализации в базе данных. Когда вы обработаете реализации в состоянии подписания ЭДО, вновь переходите в первый раздел "Заполнить реализацию" - и запускайте заполнение с пустой реализацией - тогда будут обработаны все реализации подряд с пустым Соглашением. Обратите внимание, что по моей задаче Соглашения не использовались до запуска функциональной опции. Поэтому условие "пустых соглашений" равнозначно условию: поле "Соглашение" не равно выбранному Соглашению.
Если вы уже используете соглашения, тогда использовать представленную обработку для заполнения соглашений не стоит. Либо нужно будет наложить ряд своих ограничений по отбору тех или иных документов продажи. Обработка не предназначена для использования в общих случаях.
4. Четвертый этап - вам нужно проверить все оставшиеся документы в базе данных, и заполнить в них пустые соглашения. Для этих целей есть раздел "Заполнить все документы из макета". Для заполнения макета списком документов, можете скопировать список из макета представленной обработки.
Можете также сами в конфигураторе запустить "Поиск ссылок на объект" и скопировать весь список найденных объектов. Все равно из всего списка будут обработаны только Документы, имеющие реквизит соглашение.
Подобный механизм я уже неоднократно использовал в других задачах 1С и описал в статье Мини-обзор разных решений задач.
Обработка содержит режим "Протестировать только 10 документов" и режим "Не перезаписывать документы" - эти режимы вам пригодятся на этапе отладки обработки и тестирования на ваших данных.
Есть механизм задержки обработки - укажите задержку в минутах - в процессе обработки документов в цикле, будет искусственно создаваться задержка времени для исключения конфликтов блокировки. Задержку можно обнулить, если уверены, что конфликтов блокировок не будет.
Все документы обрабатываются пакетами по 600 документов - число взято эвристически, прописано в запросе. Пакеты удобны тем, что не перегружают оперативную память сервера (или вашего компьютера).
В качестве дополнения прописал следующий код, который срабатывает при открытии формы реализации - проверяется заполнено ли Соглашение, и если не заполнено, то заполняется типовым соглашением.
На этом все. При написании статьи ИИ не использовалось. :)
Всем добра!
С пользой для клиентов, Рустем
- Анализ прав и ролей. Поиск подходящего профиля - алгоритмический анализ и поиск
- Оцифровка и визуализация склада - программная прорисовка склада
- Удаление документов для любых баз на управляемых формах
- Удаление справочников для любых баз на управляемых и обычных формах
- Перенумерация документов и справочников - с учетом префиксов номеров
- Свертка базы УТ 10.3 подокументно - новая концепция
- Матричное программирование - демо-стенд матричного калькулятора
- Справочное хранение товаров в КА 2.5 - кейс запуска адресного склада
- Мини-обзор разных задач - от очевидного до неочевидного
- Поиск отчета по документам - пример анализа незнакомых конфигураций
- Флажок в динамическом списке - от теории до практики "как бы простой" задачи
- Из Json в ДеревоЗначений - удобный просмотрщик json-структуры
- Внедрение адресного склада в КА 2.5 - кейс запуска адресного склада
- Фрилансеру: про цены, про клиентов, про планирование - мое исследование
- Что такое форматированный документ - прекрасная возможность раскрасить любой текст
- Программная работа с упаковками в КА 2.5 - примеры адаптаций механизмов упаковок в КА 2.5
- Универсальное сравнение регистров накопления - связь по измерениям, сравнение по ресурсам
- Обход объекта рекурсивно - просмотр реквизитов документа с бесконечным открытием подуровней
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.5.21.104, 11.5.20.75