Шаблон обработки внешнего заполнения (БСП, управляемые формы)
Разработка - БСП (Библиотека стандартных подсистем)
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Шаблон обработки внешнего заполнения (БСП, управляемые формы).
Сделан на примере заполнения документа «Перемещение материалов в кладовую»(ДвижениеПродукцииИМатериалов). При старте открывает дополнительную внешнюю форму обработки где запрашивается ресурсная спецификация и количество комплектов.

Особенности: - открытие дополнительной формы для ввода параметров, форма для отладки, позволяющая запускать внешнюю обработку непосредственно через меню файл.

Также рекомендую обратить внимание на алгоритм обработки ТЧ после заполнения основных данных из запроса. Предлагаю следующий быстрый способ написания кода на примере импорта кода процедуры ТоварыНоменклатураПриИзменении(Элемент) документа ДвижениеПродукцииИМатериалов.
-
Импортируем сам модуль в наш алгоритм (он выполняется на сервере):
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПроверитьЗаполнитьУпаковкуПоВладельцу");
ДобавитьДействиеПересчитатьКоличествоЕдиниц(Форма, СтруктураДействий);
СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
ПараметрыПроверкиСерий = Новый Структура("Склад, ПараметрыУказанияСерий");
ПараметрыПроверкиСерий.Склад = Новый Структура("Отправитель, Получатель", Форма.Объект.Отправитель, Форма.Объект.Получатель);
ПараметрыПроверкиСерий.ПараметрыУказанияСерий = Форма.ПараметрыУказанияСерий;
СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", ПараметрыПроверкиСерий);
СтруктураДействий.Вставить("НоменклатураПриИзмененииПереопределяемый", Новый Структура("ИмяФормы, ИмяТабличнойЧасти",
Форма.ИмяФормы, "Товары"));
НаправленияДеятельностиКлиентСервер.СтруктураДействийВставитьПриДобавленииСтроки(Форма, СтруктураДействий);
ОбеспечениеКлиентСервер.СтруктураДействийВставитьПриИзмененииНазначения(СтруктураДействий);
ОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
-
Заменим ОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения) на аналогичную
ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения)
3. В алгоритме часто используется передача формы и ее параметров. На сервер мы форму передать не можем , но это и не нужно , достаточно посмотреть какие параметры нам будут нужны, заранее их получить на клиенте и передать через структуру:
Парам=Новый Структура("ОтправительЦеховаяКладовая,ПолучательЦеховаяКладовая,ПараметрыУказанияСерий,ИмяФормы,НаправленияДеятельностиКэшированныеЗначения");
ЗаполнитьЗначенияСвойств(Парам,Форма);
-
Поменять все значения где передается форма на нашу структуру Парам.
Код готов. Написание всего кода занимает 5 минут, при этом он получается гарантированно рабочим, так как взят из оригинальной конфигурации.
КэшированныеЗначения = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения(); Пока Выб.Следующий() Цикл ТекущаяСтрока=НовыйОбъект.Товары.Добавить(); ЗаполнитьЗначенияСвойств(ТекущаяСтрока,Выб); СтруктураДействий = Новый Структура; СтруктураДействий.Вставить("ПроверитьХарактеристикуПоВладельцу", ТекущаяСтрока.Характеристика); СтруктураДействий.Вставить("ПроверитьЗаполнитьУпаковкуПоВладельцу", ТекущаяСтрока.Упаковка); СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц", Новый Структура("НужноОкруглять", Не Парам.ОтправительЦеховаяКладовая И Не Парам.ПолучательЦеховаяКладовая)); СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул")); СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры")); ПараметрыПроверкиСерий = Новый Структура("Склад, ПараметрыУказанияСерий"); ПараметрыПроверкиСерий.Склад = Новый Структура("Отправитель, Получатель", НовыйОбъект.Отправитель, НовыйОбъект.Получатель); ПараметрыПроверкиСерий.ПараметрыУказанияСерий = Парам.ПараметрыУказанияСерий; СтруктураДействий.Вставить("ПроверитьСериюРассчитатьСтатус", ПараметрыПроверкиСерий); СтруктураДействий.Вставить("НоменклатураПриИзмененииПереопределяемый", Новый Структура("ИмяФормы, ИмяТабличнойЧасти", Парам.ИмяФормы, "Товары")); Кэш = Парам.НаправленияДеятельностиКэшированныеЗначения; СтруктураДействий.Вставить("ПроверитьЗаполнитьНазначение", Кэш.НазначениеПоУмолчанию); ОбеспечениеКлиентСервер.СтруктураДействийВставитьПриИзмененииНазначения(СтруктураДействий); ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения); КонецЦикла;
Обработка гарантированно работает на платформе 8.3 (тестировано на релизе 8.3.18.1334) 1С:Комплексная автоматизация 2 (2.4.13.281)
Подключается через стандартный механизм использования внешних обработок, но может быть запущена через меню Файл.
Использование обработки: Из открытого документа запустить обработку заполнения, в отрывшейся форме выбрать ресурсную спецификацию и необходимое количество комплектов для перемещения в кладовую. После чего нажать кнопку "Заполнить по спецификации" . В открытом документе будет заполнена ТЧ "материалы", но сам документ не будет записан.
Режим совместимости Версия 8.3.14 и выше.
Акция! Вы можете скачать архив всех моих разработок, которые я предлагаю за StartMone, по Специальной цене: //infostart.ru/public/960899/#archive
Вступайте в нашу телеграмм-группу Инфостарт