Вторник, 21.05.2024
1c всегда!
Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » 2015 » Январь » 13 » Заполнение табличных частей документов в 1с8 (внешние обработки)
15:13
Заполнение табличных частей документов в 1с8 (внешние обработки)

Заполнение табличных частей документов в восьмерке (внешние обработки)

Опубликовал poppy в раздел Обработки - Обработка документов

В отличии от семерочных типовых конфигураций в восьмерочных появилась возможность подключать внешние обработки для заполнения табличных частей документов и справочников.

Статья является продолжением цикла статей и разработок:
Внешние печатные формы в восьмерке http://infostart.ru/blogs/157/
Обработка для тестирования внешних печатных форм в восьмерке http://infostart.ru/projects/833/
Использование встроенного почтового клиента - http://infostart.ru/blogs/161/
Документ с печатью и подписью - http://infostart.ru/blogs/162/
Внешние печатные формы в восьмерке II - http://infostart.ru/blogs/324/ 
Заполнение табличных частей документов в восьмерке (внешние обработки) http://infostart.ru/blogs/345/
Обработка для тестирования внешних обработок заполнения табличных частейhttp://infostart.ru/projects/1749/
Использование свойств объектов при доработке типовых конфигураций http://infostart.ru/blogs/692/
Примеры обработок:
Закрытие регистров накопления (обработка заполнения табличных частей) http://infostart.ru/projects/3280/
Объединение одинаковых строк табличной части документа http://infostart.ru/projects/4355/
Требования к внешней обработке достаточно просты. В модуле обработки должна быть процедура Инициализировать() с тремя параметрами и ключевым словом «Экспорт». Например, для заполнения табличной части документа номенклатуры из определенной группы достаточно написать процедуру:
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПоле) Экспорт;
 
 Форма = Справочники.Номенклатура.ПолучитьФормуВыбораГруппы(); 
 Группа = Форма.ОткрытьМодально();
 Если Группа = Неопределено Тогда Возврат;
 КонецЕсли;
 
 Объект[ИмяТабличнойЧасти].Очистить();
 
 Выборка = Справочники.Номенклатура.Выбрать(Группа);
 Пока Выборка.Следующий() Цикл Если Выборка.ЭтоГруппа Тогда Продолжить;
 КонецЕсли;

 СтрокаТабличнойЧасти = Объект[ИмяТабличнойЧасти].Добавить();
 СтрокаТабличнойЧасти.Номенклатура = Выборка.Ссылка;
 КонецЦикла;

КонецПроцедуры 
Для подключения обработки необходимо добавить новый элемент в справочник «Внешние обработки». Меню\Сервис\Открыть список внешних обработок заполнения табличных частей. Пример заполнения справочника представлен на рисунке.
Подключение обработки
В результате, в документе появится новый пункт меню у кнопки «Заполнить».
Вызов обработки
Описанный механизм поддерживает передачу во внешнюю обработку параметров. Подробнее здесьhttp://infostart.ru/blogs/324/
В обработке может быть макет с идентификатором "Параметры_Авторегистрации". В первом столбце которого в каждой строчке можно указать объекты, для которых предназначена печатная форма. Например, "Документы.ЗаказПокупателя". Во втором столце - идентификаторы табличных частей.
В качестве бонуса предлагаю обработку http://infostart.ru/projects/1749/?ref=4246 , с помощью которой можно облегчить процесс тестирования кода. Обработку подключаем через справочник "Внешние обработки". Запускаем обработку через кнопку "Заполнить". В обработке указываем имя файла тестируемой внешней обработки. После чего, тестируем код как обычный модуль.

См. также

Просмотров: 2636 | Добавил: pasjunja | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск
Календарь
«  Январь 2015  »
ПнВтСрЧтПтСбВс
   1234
567891011
12131415161718
19202122232425
262728293031
Архив записей
Друзья сайта
  • Создать сайт
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Все проекты компании
  • Copyright MyCorp © 2024
    Создать бесплатный сайт с uCoz