Заполнение табличных частей документов в восьмерке (внешние обработки)
Обработки - Обработка документов
Статья является продолжением цикла статей и разработок:
Внешние печатные формы в восьмерке 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/
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПоле) Экспорт; Форма = Справочники.Номенклатура.ПолучитьФормуВыбораГруппы(); Группа = Форма.ОткрытьМодально(); Если Группа = Неопределено Тогда Возврат; КонецЕсли; Объект[ИмяТабличнойЧасти].Очистить(); Выборка = Справочники.Номенклатура.Выбрать(Группа); Пока Выборка.Следующий() Цикл Если Выборка.ЭтоГруппа Тогда Продолжить; КонецЕсли; СтрокаТабличнойЧасти = Объект[ИмяТабличнойЧасти].Добавить(); СтрокаТабличнойЧасти.Номенклатура = Выборка.Ссылка; КонецЦикла; КонецПроцедурыДля подключения обработки необходимо добавить новый элемент в справочник «Внешние обработки». Меню\Сервис\Открыть список внешних обработок заполнения табличных частей. Пример заполнения справочника представлен на рисунке.
В качестве бонуса предлагаю обработку //firstportal.ru/projects/1749/?ref=4246 , с помощью которой можно облегчить процесс тестирования кода. Обработку подключаем через справочник "Внешние обработки". Запускаем обработку через кнопку "Заполнить". В обработке указываем имя файла тестируемой внешней обработки. После чего, тестируем код как обычный модуль.
См. также
Специальные предложения
…poppy, не могли бы вы ответить на один вопрос, что является источником таких знаний об 1С 8… вопрос, о заполнении табличных частей документа меня задел… просмотрел сайты, форумы, книги… и нигде нет подобного решения, нигде такое не описывается… даже в талмуде-библии «Профессиональная разработка в системе 1С:Предприятие 8» господ Габец, Гончаров +++ Радченко о такой возможности говорится мельком, описывается на четверть листа, а уж говорить о возможности это понять и говорить не приходится…
Поэтому хочется узнать, где этот источник…? Куда надо смотреть, что посещать…?
Откуда такая методическая правильность и доходчивость…?
Ответьте если не затруднит… вам поклоняющийся … ШТ…
Во-о-о-от такой вопрос?
Удачи всем и во всём…
я тоже силён "последним умом"... но если честно... давайте вместе прочитаем этот хелп и спросим себя " ты, что-нибудь понял?"... я, не такой умный, это точно... да и к тому же как это сделала poppy наглядно и доходчиво... и если она всё это смогла сделать только на основании информации из хелпа ""Внешние обработки" ... то... я восхищён... и poppy и хелпом...
во-о-от... хочется дождаться и мнения и poppy... а то так недалеко и до комплекса полной неполноценности...
Основа статьи взята из типовой конфигурации УПП 1.2.7.1. Общий модуль - "УниверсальныеМеханизмы". Процедура - ОбработатьНажатиеНаДополнительнуюКнопкуЗаполненияТЧ(), строка #377
Обработка.Инициализировать(ЭтотОбъект, СтрокаКнопки.Родитель.Имя, СтрокаКнопки.Родитель.Расшифровка);
Остальное, как говорится, дело техники.
Ты спрашиваешь, откуда сила, брат (сестра)? Имхо, неплохо об этом написал Александр здесь http://infostart.ru/blogs/139/#comm24
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт
Для каждого СТП Из ТабличноеПолеОбъекта.Значение Цикл
СТП["цена1"] = 10;
КонецЦикла;
КонецПроцедуры
(я не тормоз, мне просто чессно некогда Инфостарт читать %( )
Очень полезная тема и доходчиво написано. Спасибо! Все работает! :)
(27) to powar
Не знаю, актуален ли еще ваш вопрос, но отвечаю на всякий случай:
МОЖНО :!:
1. Добавила в реквизиты обработки реквизит "ДокументОбъект" с типом значения ДокументОбъект.<НаименованиеДокумента>
2. В проц. Инициализировать() добавила:
ДокументОбъект=Объект;
3. Потом обращалась к документу через реквизит ДокументОбъект.
Может это и не оптимально, но работает. :)
Изменения в форме документа отображаются тут же.
Подскажите новичку ( с 1с познакомился совсем недавно).
У меня возникла проблема подключения этой обработки.
В конфигураторе добавляю новую обработку.В окно модуля вставляю вышеуказанную процедуру.Сохраняю внешнюю обработку в файл.
Затем подключаю ее как указано выше. Но в окне "принадлежность обработки по заполнению табличных частей " у меня пусто.И программа ничего не дает туда внести.
Что нужно еще сделать ,чтобы у меня по вышеуказанным рекомендациям все заработало?
Заранее спасибо.
Просмотры 112889
Загрузки 0
Комментарии 49
Создание 28.02.08 01:45
Обновление 03.08.09 14:25
№ Публикации 17140
Рубрики Теория программирования Обработка документов
Кому Программист
Тип файла Нет файла
Платформа Платформа 1С v8.x (все механизмы)
Конфигурация 1С:Комплексная автоматизация 1.х ,
1С:Бухгалтерия 2.0 ,
1С:Зарплата и Управление Персоналом 2.5 ,
1С:Управление торговлей 10 ,
1С:Зарплата и кадры бюджетного учреждения ,
1С:Розница ,
1С:Управление производственным предприятием
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Раздел учета Не имеет значения
Доступ к файлу Бесплатно (free)
Код открыт Не указано