Назначение
В УНФ состав набора (регистр сведений «Состав наборов», форма открывается по ссылке «Набор» из карточки номенклатуры) заполняется только вручную, по одной строке. Если наборов много и они похожи — это рутина.
Расширение добавляет на форму состава набора привычный механизм копирования строк, как в табличных частях документов:
- кнопки-картинки «Копировать строки» / «Вставить строки» над таблицей (те же пиктограммы, что в Заказе покупателя);
- горячие клавиши Ctrl+Alt+C / Ctrl+Alt+V;
- множественное выделение строк (Ctrl / Shift / Ctrl+A) — в типовой форме оно отключено;
- после вставки состав записывается автоматически, дубли схлопываются с суммированием количества;
- буфер обмена — типовой, общий с документами: строки можно переносить между составом набора и ТЧ «Товары, услуги» Заказа покупателя в обе стороны;
- буфер персональный и сохраняется между сеансами.
При вставке автоматически пропускаются позиции-наборы и позиции недопустимого типа (в набор-запас — только запасы и услуги, в набор-работу — только работы и услуги), поэтому в оповещении «Вставлены строки (N из M)» N может быть меньше M. Характеристики не переносятся.
Как это устроено (для разработчиков)
- Заимствована форма РегистрСведений.СоставНаборов.ФормаРедактированияСостава без изменения слепка — все команды, кнопки и режим выделения создаются программно в &После(«ПриСозданииНаСервере»). Минимум конфликтов при обновлении УНФ.
- Копирование — типовым КопированиеТабличнойЧастиСервер.Копировать в общий буфер ХранилищеОбщихНастроек(«БуферОбменаТабличныеЧасти», «Строки») — отсюда совместимость с документами.
- Вставка — своя (типовая Вставить() завязана на ТЧ документа): фильтр по допустимым типам номенклатуры, исключение вложенных наборов, заполнение служебных колонок строки по образцу типовых процедур.
- Запись после вставки — вызовом типовой СохранитьИзменения(): свёртка дублей, запись набора записей регистра, оповещение карточки номенклатуры. В режиме редактирования состава из документа — только пометка модифицированности.
- Ключевой момент: у типовой таблицы жёстко SelectionMode = SingleRow; множественное выделение включается программно — Элементы.СоставНабора.РежимВыделения = РежимВыделенияТаблицы.Множественный.
Установка
- Администрирование → Печатные формы, отчеты и обработки → Расширения.
- Добавить из файла → МК_КопированиеНаборов.cfe.
- Снять флажок «Безопасный режим».
- Перезапустить сеансы.
Проверено
- УНФ 3.0.13.342, режим совместимости 8.5.1.
- Типовые объекты не изменяются; расширение содержит одну заимствованную форму (слепок не модифицирован, код только в модуле формы). Код открыт.
Проверено на следующих конфигурациях и релизах:
- Управление нашей фирмой, редакция 3.0, релизы 3.0.14.115
Вступайте в нашу телеграмм-группу Инфостарт