Статья является продолжением цикла статей и разработок:
Внешние печатные формы в восьмерке 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/
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПоле) Экспорт; Форма = Справочники.Номенклатура.ПолучитьФормуВыбораГруппы(); Группа = Форма.ОткрытьМодально(); Если Группа = Неопределено Тогда Возврат; КонецЕсли; Объект[ИмяТабличнойЧасти].Очистить(); Выборка = Справочники.Номенклатура.Выбрать(Группа); Пока Выборка.Следующий() Цикл Если Выборка.ЭтоГруппа Тогда Продолжить; КонецЕсли; СтрокаТабличнойЧасти = Объект[ИмяТабличнойЧасти].Добавить(); СтрокаТабличнойЧасти.Номенклатура = Выборка.Ссылка; КонецЦикла; КонецПроцедуры
Для подключения обработки необходимо добавить новый элемент в справочник «Внешние обработки». МенюСервисОткрыть список внешних обработок заполнения табличных частей. Пример заполнения справочника представлен на рисунке.
В качестве бонуса предлагаю обработку //infostart.ru/projects/1749/?ref=4246 , с помощью которой можно облегчить процесс тестирования кода. Обработку подключаем через справочник «Внешние обработки». Запускаем обработку через кнопку «Заполнить». В обработке указываем имя файла тестируемой внешней обработки. После чего, тестируем код как обычный модуль.
Великая poppy! спасибо за оперативность и актуальность материала! В очередной раз позвольте высказать своё восхищение вашими трудами и глубиной познания методологии 1С. Удачи!
опятья… посидел… попробовал… разобрался… да! отличная идея и возможность и главное простота реализации.
спасибо poppy!
Удачи!
…и… опять я…
…poppy, не могли бы вы ответить на один вопрос, что является источником таких знаний об 1С 8… вопрос, о заполнении табличных частей документа меня задел… просмотрел сайты, форумы, книги… и нигде нет подобного решения, нигде такое не описывается… даже в талмуде-библии «Профессиональная разработка в системе 1С:Предприятие 8» господ Габец, Гончаров +++ Радченко о такой возможности говорится мельком, описывается на четверть листа, а уж говорить о возможности это понять и говорить не приходится…
Поэтому хочется узнать, где этот источник…? Куда надо смотреть, что посещать…?
Откуда такая методическая правильность и доходчивость…?
Ответьте если не затруднит… вам поклоняющийся … ШТ…
Во-о-о-от такой вопрос?
Удачи всем и во всём…
Шёпот теней
Мдя… Ты бы в 1С еще позвонил, а потом и Биллу Гейтсу 🙂 А посмотреть Справочную информацию по спрвочнику «Внешние обработки» — не судьба была? 🙂
Спасибо O-Planet! конечно, сам виноват… кто же спорит… но вот вопрос… кто читает эти хелпы в справочниках, да ещё в таком как «Внешние обработки»…
я тоже силён «последним умом»… но если честно… давайте вместе прочитаем этот хелп и спросим себя » ты, что-нибудь понял?»… я, не такой умный, это точно… да и к тому же как это сделала poppy наглядно и доходчиво… и если она всё это смогла сделать только на основании информации из хелпа «»Внешние обработки» … то… я восхищён… и poppy и хелпом…
во-о-от… хочется дождаться и мнения и poppy… а то так недалеко и до комплекса полной неполноценности…
Извини, Шепот, но хелп не читала. Наверно, зря.
Основа статьи взята из типовой конфигурации УПП 1.2.7.1. Общий модуль — «УниверсальныеМеханизмы». Процедура — ОбработатьНажатиеНаДополнительнуюКнопкуЗаполненияТЧ(), строка #377
Обработка.Инициализировать(ЭтотОбъект, СтрокаКнопки.Родитель.Имя, СтрокаКнопки.Родитель.Расшифровка);
Остальное, как говорится, дело техники.
Ты спрашиваешь, откуда сила, брат (сестра)? Имхо, неплохо об этом написал Александр здесьhttp://infostart.ru/blogs/139/#comm24
По моему мнению отзвук силы и вдохновения звучит и здесь (пардон за каламбур):
http://infostart.ru/blogs/179/
>Великая poppy!
О, Poppy, Великая и Ужасная! Дай мне сердце, а кое-кому мозгов.
И Элли с Тотошкой вернутся с Арканзас :)))
спасибо и Великому Abadonne…
…и… привет и Элли с Тотошкой…
(5) во-о-от… хочется дождаться и мнения и poppy… а то так недалеко и до комплекса полной неполноценности
Ты эт о чем вообще? 🙂
>ОбработатьНажатиеНаДополнительнуюКнопкуЗаполненияТЧ()
итьНеобходимыеДействияКорректно() :)))))))))
Коротковатое название 😉
Лучше: ОбработатьНажатиеНаДополнительнуюКнопкуЗаполненияТЧ_и_Выполн
Спасибо большое! Нужно было быстро разобраться, очень помогло!!!
Не плохо бы дописать в ней и запролнение на основании
(13)
«заполнение на основании» чего? Как это относится к теме обсуждаемой статьи?
Использовать
http://infostart.ru/profile/6612/projects/893/
(не моя)
Как сделать отбор всех подгрупп этой группы. Так как здесь идет отбор только
элементов указаного уровня?
Надо бы еще добавить про «Параметры_Авторегистрации»
(17)
Спасибо за замечание…
Кстати, в этой хорошей идее, как всегда у 1С, не обошлось без ложки дегтя. При вызове форма имеет модифицированность всегда. Т.е. если даже в обработке ничего не меняли, и, следовательно документ не изменен, то значок * ставится все равно и предлагает сохранятся.
(19) Есть такая фича в типовых конфигурациях. Кроме БП.
(19) Спасибо за дополнение.
poppy, нет ли планов развить тему? В частности, что-то непонятно, как работать, если в параметре ТабличноеПоле типовая конфигурация передаёт не ТабличноеПоле, связанное с табличной частью документа, а ТабличноеПоле, связанное с генерируемой в контексте формы документа временной ТаблицейЗначений (например, документ УстановкаЦенНоменклатуры в Рознице). Бьюсь-бьюсь, никак что-то не получается редактировать это ТабличноеПоле…
Тьфу-ты, вот вроде и докопался! По крайней мере, вроде получается редактировать саму ТЗ через ТабличноеПоле.Значение… Сейчас вроде допинаю… stay tuned %)
У меня вопрос: а что можно сделать, чтобы вызвать эту обработку ТЧ в документе, у которого нет кнопочки «Заполнить»? (к примеру документ «Ввод начальных остатков в Бух 8»)
Под 8.2 не работает… 👿
Ну да, как я и сказал, всё работает через ТабличноеПоле.Значение (для документа УстановкаЦенНоменклатуры в Рознице).
Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт
Для каждого СТП Из ТабличноеПолеОбъекта.Значение Цикл
СТП[«цена1»] = 10;
КонецЦикла;
КонецПроцедуры
(я не тормоз, мне просто чессно некогда Инфостарт читать %( )
А как мона передать полностью ссылку на документ обработке? Что бы получать данные с документа и записывать на него. ❓
(27) Объект — это и есть ссылка на документ
Здравствуйте!
Подскажите новичку ( с 1с познакомился совсем недавно).
У меня возникла проблема подключения этой обработки.
В конфигураторе добавляю новую обработку.В окно модуля вставляю вышеуказанную процедуру.Сохраняю внешнюю обработку в файл.
Затем подключаю ее как указано выше. Но в окне «принадлежность обработки по заполнению табличных частей » у меня пусто.И программа ничего не дает туда внести.
Что нужно еще сделать ,чтобы у меня по вышеуказанным рекомендациям все заработало?
Заранее спасибо.
(29) Извините за беспокойствие .Все получилось.
Для обработки в конфигураторе надо было указать в реквизитах ссылку на объект.
to poppy
Очень полезная тема и доходчиво написано. Спасибо! Все работает! 🙂
(27) to powar
Не знаю, актуален ли еще ваш вопрос, но отвечаю на всякий случай:
МОЖНО ❗
1. Добавила в реквизиты обработки реквизит «ДокументОбъект» с типом значения ДокументОбъект.<НаименованиеДокумента>
2. В проц. Инициализировать() добавила:
ДокументОбъект=Объект;
3. Потом обращалась к документу через реквизит ДокументОбъект.
Может это и не оптимально, но работает. 🙂
Изменения в форме документа отображаются тут же.
Спасибо Nadezhda09’сан!
Ученье трудно нам давалось. Писал для 7-ки писал, и тут на тебе, клиенты повально начали переходить на 8-ку, если бы не подобные статьи, то все мозги бы вывихнул на старости лет изучая оную. А так со скрипом, но дело движеться вперед.
как скачать?
Под 8.2 не работает…
Хм… странно, у меня работает. Попробуйте открыть через конфигуратор и согласитесь на преобразование обработки, после этого сохраните и откройте в режиме Предприятие.
Спасибо за статью! Оч. полезная информация.
Содержательная статья!
ПечФормаНаОсновеГотовой
Добавил бы еще в шапку (как дополнение) «Как создать внешнюю печатную форму на основе готовой»
обогатил свои знание спс
Спасибо большое. Мгновенное применение. Сразу в жизнь.
подобным образом организовал простой обмен через csv файл с сайтом на viart.
теперь обновления на сайте не занимают больше 5 минут при оооочень малом бюджете 🙂
Спасибо за статью! Сейчас решаю задачу корректировки проводок документа «Списание с расчетного счета » с помощью обработки заполнения табличных частей, не знаю, получится ли…
(19) dimg, Блин что делать с модифицированностью? как от нее избавиться всю голову сломал, сохранять объект не подходит, вышли как нибудь из положения?
Спасибо, полезно для новичка. Работает!
Как отладчиком забраться в процедуру «Инициализировать» ?
[44]
http://infostart.ru/public/15601/
andpal, используй обработку
все кратко и понятно написано. спасибо за информацию, то что надо!!!
(47) Vladisa, Здесь пишеться — скачал/нескачал… Нехорошо обманывать… Млдераторы вычислят как вы $m зарабатываете — забанят…
Полезная вещь
В этой обработке ярлык «настройка» есть события. Если программно изменить «После добавления строки», то обработка эти изменения не видит, но стоит просто их открыть и закрыть начинает обрабатывать. Изменения вносятся через процедуру КоманднаяПанельЗагружаемыеРеквизитыСобытия. На пример ПослеДобавленияСтроки = «» + Строка(«Сообщить(«»Загружено»»);»)+ Символы.ПС + Строка(«Сообщить(«»Тест»»);») . Что ей не хватает? Мне необходимо дополнительно осуществлять поиск данных.