Создание внешних печатных форм для 1С 8.1 на основе типовых. (Через подмену контекста).
Учетные задачи - Печатные формы
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Предисловие: Этот способ является лишь альтернативой стандартному, который вы можете почерпнуть из цикла статей от poppy
1. Внешние печатные формы в восьмерке
2. Внешние печатные формы в восьмерке II
3. Обработка для тестирования внешних печатных форм в восьмерке
Как показала практика, применение этого способа оправдано лишь в очень редких случаях. Но сам по себе способ итересен в смысле возможности исполнения процедур и функций, которые будут выполнятся в контексте другого объекта.
Итак. Чтобы далеко не ходить, возьмем типовую 1С Бухгалтерию 1.6. И сделаем для нее внешнюю печатную форму печати счета-фактуры выданного со своим макетом и с возможностью изменения модуля формирования печатной формы.
Мы проделаем такую работу:
1. Создадим внешнюю печатную форму, повторяющую типовую.
2. Заменим в печати в поле грузоотправителя "он же" на данные организации.
3. Немного изменим макет.
Начнем :)
Начало ничем не отличается от создания обыной внешней печатной формы.
1. Создаем внешнюю обработку.
2. Назавем ее "ВнешнийСчетФактураВыданный".
3. Добавим реквизит "СсылкаНаОбъект" с типом "ДокументСсылка.СчетФактураВыданный".
4. В модуле обработки создадим экспортную функцию "Печать".
5. Добавим форму, упрощающую отладку (идея была почерпнута с инфостарта). Назовем ее "ФормаПрямойПечати". В ней должно быть полеВвода для ввода значения "СсылкаНаОбъект". А по нажатю на кнопку "Выполнить" будет вызываться наша функция "Печать" с выводом на экран результата.
Процедура КнопкаВыполнитьНажатие(Кнопка)
Печать().Показать();
КонецПроцедуры
Это позволит печатать вызывать нашу обработку без подключения внешней печатной формы, просто открыв файл.
6. Скопируем макет счета фактуры в нашу обработку. Так как этих макетов полно, скопируем все. На всякий случай.
Пока все как обычно. Результат - см рисунок 1.
А вот теперь, начинается "Магия".
7. Создаем еще одну форму. Назовем ее "ФормаСчетаФактуры".
8. Изменим основной реквизит второй формы ("ФормаСчетаФактуры"): Поменяем наименование с "ОбработкаОбъект" на "ДокументОбъект", а тип с "ВнешняяОбработка.ВнешнийСчетФактураВыданный" на "ДокументОбъект.СчетФактураВыданный". Обращаю ваше внимание, именно ДокументОбъект!
9. В модуле формы объявим экпортную переменную "ВнОбработка". Она будет содержать объект нашей внешней обработки для доступа к макетам. Почему не реквизит? Потому что при использовании реквизита, она (обработка) оставалась в активной в предприятии, даже после закрытия всех окон.
10. В модуле обработки в функции "Печать" добавим код:
Функция Печать() Экспорт
СчетФактураОбъект = СсылкаНаОбъект.ПолучитьОбъект();
ФормаСчетаФактуры = ПолучитьФорму("ФормаСчетаФактуры");
ФормаСчетаФактуры.ДокументОбъект = СчетФактураОбъект;
ФормаСчетаФактуры.ВнОбработка = ЭтотОбъект;
ТабДок = ФормаСчетаФактуры.ПечатьВнешнейФормы();
Возврат(ТабДок);
КонецФункции
Стоит немного отвлечься и объяснить. Итак. При вызове функции "Печать()" из СсылкаНаОбъект мы получаем объект документа СчетаФактуры. Значение этого объект мы используем для передачи его в основной реквизит формы "ФормаСчетаФактуры". Как только мы это сделали, форма "ФормаСчетаФактуры" ничем не отличается от формы, созданной в дереве метаданных в документе "СчетФактураВыданный". То есть, после этого форма "думает" что она - форма документа "СчетФактураВыданный", и ей доступен весь контекст объекта по прямому обращению. И все экспортные переменные, функции и процедуры, реквизиты и табличные части.
Дело за малым:
11. Переносим (методом копировать/вставить) из модуля Документа в модуль формы "ФормаСчетаФактуры" все необходимые процедуры. А их надо сказать у Счета-фактуры много:
- ИнициализацияТаблицыСтрок
- СобратьДанныеПоОтчетКомитентуОПродажах
- СобратьДанныеПоОтчетКомиссионераОПродажах
- СобратьДанныеПоРеализацияТоваровУслуг
- СобратьДанныеПоВозвратТоваровПоставщику
- СобратьДанныеПоПКО
- СобратьДанныеПоСВП
- СобратьДанныеПоПлатежномуОрдеру
- СобратьДанныеПоАкту
- СобратьДанныеПоПередачеОС
- СобратьДанныеПоПередачеНМАОрганизаций
- СобратьДанныеПоОтражениюРеализацииТоваровИУслуг
- СобратьДанныеПоРеализацияУслугПоПереработке
- СобратьДанныеПоПринятиюКУчетуОС
- СобратьДанныеПоМодернизацииОС
- СобратьДанныеПоНачислениеНДСпоСМРхозспособом
- СобратьДанныеСФнаАвансИСуммовуюРазницу
- ПроставитьПрочеркиВПустыеПоля
- ПерезаполнитьСуммыПоУЕвРублях
- ПечатьСчетаФактуры
Но пусть вас не пугает их количество. Как видите большинство из них это "СобратьДанные...". И служебные для печати. Также есть функция "ПечатьСчетаФактуры".
Стоит заметить что все они не экспортные. Именно из-за этого мы их и копировали.
Отдельный разговор по переносу процедуры Печать(...) из модуля документа.
Это самый сложный момент.
Переименуем ее в ПечатьВнешнейФормы. Но мало того, переделаем ее в функцию. Для этого заменим все "Возврат" на Возврат (Неопределено).
А вызов процедуры в конце модуля процедуры
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект, ЭтотОбъект.Метаданные().Представление()), НепосредственнаяПечать);
заменим на
Возврат(ТабДокумент);
Также теперь нам не нужны параметры: КоличествоЭкземпляров, НаПринтер, НепосредственнаяПечать.
Да и параметр "ИмяМакета" нам неактуален. Просто зададим его значение в теле функции:
ИмяМакета = "СчетФактура";
убрав его из параметров.
12. Осталось заменить вызов общих Макетов на макеты из обработки. Меняем строки вида
Макет = ПолучитьОбщийМакет("...") и Макет = ПолучитьМакет("...")
заменим на
Макет = ВнОбработка.ПолучитьМакет("...");
ВСЁ! (практически)
У нас есть внешняя печатная форма Счета-Фактуры, с перенесенными в неё функциями и процедурами формирования и макетами.
Сохраняем. Ага - ругается на "мНадписьПредоплата". Смотрим в модуле документа - это переменная модуля объекта. Объявляем в нашей форме и присваеваем значение(как в модуле документа).
Перем ВнОбработка Экспорт;
Перем мНадписьПредоплата;
//... (все процедуры и функции)
мНадписьПредоплата = "Предварительная оплата";
Октрываем в 1С предприятие и тестируем!).
Заменяем Грузоотправитель.
В функции ПечатьВнешнейФормы после строк
Если ДанныеДляПечати = Неопределено или ТипЗнч(ДанныеДляПечати) = Тип("Соответствие") Тогда
Продолжить;
КонецЕсли
Вставляем
// Заменяем в печати "он же" на Организацию
Если ДанныеДляПечати.Грузоотправитель = "он же" тогда
ДанныеДляПечати.Грузоотправитель = ДанныеДляПечати.Организация;
КонецЕсли;
А вот теперь вообще всё! Меняем как хотим макеты, получение данных, формирование печатных форм.
PS. Обработку см во вложении.
Дополнение1. Рассмотрен "сложный" пример. Счет на оплату, накладная и проч печатаются еще легче, но принцип тот же. Критика и замечания приветствуются.
Дополнение2. Работает только на релизе платформы старше 8.1.11.
Дополнение3. Долго думал над картинками. Так и не придумал.
Дополнение4. При подключении внешней печатной формы можно заместить ей штатную, дабы не напрягать юзеров выбором в диалоге (с) Поручик
Дополнение5. Для тестирования и отладки внешней печатной формы вместо создания спецформы в КАЖДОЙ обработке можно воспользоваться инструментом от poppy //infostart.ru/public/14686/ (с) artbear
Дополнение6. Шаблоны для создания внешних печатных форм и примеры внешних печатных форм http://www.infostart.ru/public/67060/ (с) alexk-is
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Пакетная печать Печатные формы Инструментарий разработчика Разработчик 1С:Предприятие 8 Платные (руб)
Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26
22570 руб.
06.10.2023 44500 123 54
Печатные формы Взаиморасчеты Оптовая торговля Производство готовой продукции (работ, услуг) Акт сверки Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)
Задайте для каждой организации свою печать и для каждого физического лица свою подпись. Выберите в документе печатную форму "... с печатью и подписью" - и автоматически сформируется табличный документ с печатью и подписями той организации и ответственных лиц, которые указаны в документе.
17080 руб.
13.03.2018 73102 278 80
Печатные формы Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Транспорт, автопарки, такси Бухгалтерский учет Платные (руб)
Учет путевых листов выполнен в виде расширения. Предназначен для учета путевых листов в конфигурации БП 3.0., УТ 11.5 и КА 2.5 Печатная форма: Типовая межотраслевая форма № 3. Утверждена постановлением Госкомстата России от 28.11.97 № 78. Типовая межотраслевая форма № 4-П от 18.09.2008 г. N 152 с учетом изменений указанных в Приказе Министерства транспорта Российской Федерации №368 от 11 сентября 2020 г. №368, Типовая межотраслевая форма № ЭСМ-7, и др. ЭСМ-2, 4-С, 3 спец., 6 спец., ПЛ для Автомобильного крана.
5000 руб.
14.10.2019 48694 351 216
Печатные формы Учет рабочего времени Логистика, склад и ТМЦ Бухгалтер Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Автомобили, автосервисы Транспорт, автопарки, такси Россия Бухгалтерский учет Управленческий учет Платные (руб)
Расширение для 1С:Бухгалтерии 3.0, 1С:УНФ 3.0, 1С:Управления торговлей 11.5 и 11.6, 1С:Комплексной автоматизации 2.5 и 1С:ERP 2.5. Путевые листы по приказу Минтранса № 390, восемь бланков путевых листов (4-С, 4-П, 3, 3 спец., 6 спец., ПГ-1, ЭСМ-2, ЭСМ-7), расход топлива по нормам АМ-23-р, остатки в баке, выручка и начисления водителям. ЭТрН и ЭПЛ — документами самой 1С или файлами в форматах ФНС. Код открыт.
9760 руб.
03.07.2018 46372 230 126
Печатные формы Учет рабочего времени Учет ОС и НМА Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1C:ERP Транспорт, автопарки, такси Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)
Программа для автоматизации учета путевых листов в 1С - расширение, добавляющее в конфигурацию "ERP", документ Путевой лист и печатные формы установленных образцов для легковых и грузовых авто, расчет и списание нормативного количества топлива, отчет "Реестр путевых листов" с отбором по автомобилю и по водителю (через настройки) Позволит контролировать расход топлива, потому что сразу будет виден сверхнормативный расход.
25620 руб.
23.07.2025 8093 18 0
Зарплата Обмен с интернет-банком Файловый обмен (TXT, XML, DBF), FTP Печатные формы Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ Платные (руб)
Выгрузка расчетных листков из 1С в банк в формате XML. Поддерживаются форматы файлов для Сбера, Альфабанка, Росбанк
6100 руб.
29.11.2021 32887 141 32
Печатные формы Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Платные (руб)
Внешняя печатная форма "Справка-расчет рублевых сумм документа в валюте" для конфигураций 1С:Управление торговлей 11.4, 11.5 и 11.6, 1С:Комплексная автоматизация 2.4, 2.5 и 2.6, 1С:ERP 2.4, 2.5 и 2.6
6100 руб.
15.03.2022 24213 118 22
Печатные формы Зарплата Кадровый учет Бухгалтер 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Платные (руб)
Внешняя обработка для печати трудовых договоров, соглашений и прочих трудовых документов из шаблонов.
18300 руб.
11.05.2018 24505 10 0
Так что ваш сарказм напрасен :).
Я бы ещё добавил в статью слова о том, что полученной внешней формой можно заместить штатную, дабы не напрягать юзеров выбором в диалоге. Ведь не все догадаются нажать кнопку "По умолчанию".
Собственно, это я у себя и сделал, заместив почти все штатные формы подключаемыми. Цель: быстрая доработка или исправление в случае необходимости.
Печать() - все хорошо, а .Показать() уже ругается.
только из изучения кода печати - основного метода Печать.
т.е. сначала нужно скопировать печать к себе, а уж потом по ошибкам синтаксиса найти недостающие процедуры
2. Метод все-таки неудобен - нужно делать кучу копирований и замен кода и типов данных.
ИМХО намного проще тупо скопировать код из модуля формы, поправить все недостающие реквизиты в полученном коде и т.п.
а отладку выполнять не в спец.форме КАЖДОЙ обработки, а спец.обработкой от poppy.
1. Хы. Но что хорошо в конфигурациях от 1С так это то, что в них есть кое-какой порядок. И как правило это 1-2 процедуры/функции. Счет-фактура - исключение. Но в целом вы правы, действительно никак не узнать. Но узнавать нужно в любом случае (хоть моим способом, хоть копированием). Либо писать эти процедуры с нуля.
Если не хочется думать - скопировать все, что не экспортное. + переделать процедуру печати на функцию.
2. Про копирование - согласен. Много. Про замен кода (5 шт) и типов данных (1-2 шт в зависимости от того что считать заменой типов данных) - не согласен.
3. Спец обработку от poppy я пробовал. Вещь хорошая, но, видимо, каждому своё. И от случая зависит. Стоит упомянуть в статье :)
Насчет простоты - осмелюсь не согласиться :) Для примера: Нужно заменить в печатной форме СчетаФактуры выданного поля "ИтогоСуммаНДС" и "ИтогоВсего" сделать жирными и с размером шрифта 9. Если вы сможете это сделать имея только базу за сравнимое вермя - тогда прошу научить :) (я без сарказма).
Поменяю-ка я описание статьи :)
Счет - 4 минуты
ТОРГ12 - 4 минуты
Думаю, что если потренироваться, то можно довести до 2 минут :)
пункт 2.5:
"Довольно часто приходится создавать печатные формы к различным объектам конфигураций..."
а вообще сравнение методов создания ВПФ есть? я насчитал 3 метода, но достоинства и недостатки каждого явно не выражены.
Не совсем понял о каких трёх методах речь.
Я знаю только два:
1. Стандартный. Создаем обработку, и пишем код с нуля или копируем его из базы и модифицируем.
2. Альтернатива стандартному (мой). Пишем спец. код для подмены контекста и создаем спец. форму, копируем код из базы и немного его редактируем.
А какой третий?
Что же касается первых двух - что их сравнивать? достаточно попробовать самому каждый из них. Тогда уже станет понятно, что и когда применять. Я же лично был изначально за мой метод, так как к нему привык, да и он мой. Как по мне так, он лёгок для обновления печатных форм при существенном изменении печатных форм и алгоритмов их заполнения в самой базе.
Сейчас же, многие печатные формы формируются вызовом процедур из модуля менеджера передачей ему массива ссылок. И мой метод становится излишним усложнением. А пользоваться разными методами для одного и того же - не есть путь джедая. Так что в любом случае я рекомендую делать ВПФ используя методичку poppy, указанную по ссылке выше и в самой статье.
А вот отладить и отредактировать - согласен, чуть больше времени потребуется...
Ещё раз выражаю автору большую благодарность...
Ошибка при вызове метода контекста (ПолучитьОбъект)
СчетФактураОбъект = СсылкаНаОбъект.ПолучитьОбъект();
по причине:
Элемент не выбран!
Вроде все сделал по пунктам и перепроверил.
<СсылкаНаОбъект> - как реквизит ВПФ? Тип установлен?
Да и если это ВПФ, добавлена в конфу как "Дополнительная внешняя печатная форма" и там установлен тип документа, то получать объект не нужно.
Например:
СсылкаНаОбъект >> Тип: ДокументСсылка >> надо определить новый документ или нет <... Если СчетФактураОбъект.ЭтоНовый() Тогда ...> (работает с объектами, но не ссылками)
П.С.
Тип: ДокументСсылка.<Документ> или ДокументОбъект.<Документ>
Например:
СсылкаНаОбъект >> Тип: ДокументСсылка >> надо определить новый документ или нет <... Если СчетФактураОбъект.ЭтоНовый() Тогда ...> (работает с объектами, но не ссылками)
Если ссылка получена из базы, то СчетФактураОбъект.ЭтоНовый() всегда Ложь.
Если нам не нужно записывать документ, то можно обойтись без получения объекта.
Вот и возникает вопрос. Зачем в типовых печатных формах реализована эта проверка? А народ не задумываясь, порой, берет код и корректирует только несколько строчек, оставляя исходный.
А у меня не возникает.
Народ вообще редко думает. Только чья ж в этом проблема?
Ну учитывая, что печатная форма не сохраняет объект, а только проверяет его... ну может быть да. В большинстве случаев требуется проведенный или сохраненный документ. Но все равно. Раз возникают вопросы, то надо бы как-то их растолковать.
В код мы вставляем <СчетФактураОбъект = СсылкаНаОбъект.ПолучитьОбъект();>, а зачем нам его получать? Ведь все можно проще сделать. И на сколько я понял, данная обработка вызывается путем вызова команды "Открыть".
Я же делал немножко не так:
- Брал необходимы процедуры для формирования печатной формы;
- Для формы тестирования-отладки писал тот же код, что описан выше:
Процедура КнопкаВыполнитьНажатие(Кнопка)
Печать().Показать();
КонецПроцедуры
- А вот для использования как внешняя печатная форма, другим путем (никаких объектов не получал, ну не встретил я пока случая, чтобы это было реально необходимо):
Функция СформироватьЗапросДляПечати()
Запрос = Новый Запрос;
...
Возврат Запрос.Выполнить();
КонецФункции
Функция Печать() Экспорт
ТабДокумент = Новый ТабличныйДокумент;
...
Выборка = СформироватьЗапросДляПечати().Выбрать();
Макет = ЭтотОбъект.ПолучитьМакет("МакетФормы");
...
Пока Выборка.Следующий() Цикл
Макет.Параметры.Заполнить(Выборка);
...
ТабДокумент.Вывести(Макет);
КонецЦикла;
КонецФункции
Вопрос был задан по типовым печатным формам. Вот именно по типовым у меня вопросов как правило не возникает.
А статью читали? Или заголовок? Вот прям в заголовке написано, цитирую:"...(через подмену контекста)." Вот для того, чтобы подменить контекст формы нам и нужно получить объект.
Опять же процитирую себя же
Нет, не правильно поняли.
В общем, насколько я понял ситуацию, вы на начале пути освоения 1С. Если так то, эту обработку можно смело не смотреть и не разбирать. Она в обычном приложении-то имела сомнительный смысл, а в управляемом так вообще потеряла свой... ну короче, неактуальная она.
Если что, прошу прощения за свой тон. Уж очень сегодня день тяжелый выдался.
То что в управляемом не актуальна, это понятно.
Тон нормальный. Зато все по полочкам раскладывается.
Про начало пути - не верное представление. Но это сугубо личное мнение.
Я все равно не люблю использовать исключительно подстановку типового контекста, т.к. там очень много мусора.
Не внимательно я читал. Теперь понятно зачем вы идете эдаким путем. И если внимательно прочитать мой пост выше, я описал там свой путь, правда я так уже давно не пишу, это писалось году эдак в 2007.
Я сейчас её(подстановку контекста) вообще не использую. Но считаю, что сам по себе метод интересен с теоретической точки зрения, а раньше его применение в больших количествах помогало сократить время создания ВПФ. Но такая печатная форма медленней работала, да и как-то некрасиво.
Сейчас же, повторюсь, для типовых конфигураций расстановка временных затрат изменилась. И все плюсы данного метода исчезли.
А вот это интересно. А сейчас как? Или в старом фишка в функции "СформироватьЗапросДляПечати"?
К слову сейчас я просто копирую функцию/процедуру из модуля менеджера объекта, и присваиваю значения необходимых параметров типа:
Ссылка = СсылкаНаОбъект;
Неужто можно проще?
Еще попишу.
Вот раньше (сейчас всё реже) в типовых печатных формах часто любили использовать конструкции типа
Это сейчас реквизиты документа в 95% случаев получают запросом по ссылке, а раньше сами же 1С любили напрямую к реквизитам обращаться. А еще любили к процедурам и функциям обращаться, которые используют помимо переданных им параметров значения реквизитов и переменных объекта. Что уж говорить о нетиповых конфигурациях. Так вот, мой способ как раз позволяет для таких вот юродивых типовых печатных форм создать внешнюю, тупо скопировав большинство процедур и функций из модуля объекта.
Простые операции, можно было намного проще описать.
И в результате - по этой статье сложно научиться денлать ВПФ, а только - СчетФактуру.
Нет четкого алгоритма и представления.
И удобнее проверять через обработку poppy - тем более, второстепенные к теме разъяснения по поводу второй формы перегружают статью и слишком громоздки.
Спасибо за критику.
Простые операции, можно было намного проще описать.
И в результате - по этой статье сложно научиться денлать ВПФ, а только - СчетФактуру.
Нет четкого алгоритма и представления.
Согласен. С каждым предложением.
А вот с этим не согласен в корне. Вторая форма - она вовсе не для проверки, а для подмены контекста. Форма проверки, о которой вы говорите, она в 5ом пункте. Возможно, взглянув на статью еще раз, вы поменяете мнение о статье. Не говорю о диаметральном, а о лежащем в совсем другой "плоскости", если так говорят о мнении.
PS. Я уже давно осознал, что нужно поменять и название статьи и саму статью, но всё никак не соберусь. Сейчас я вижу эту статью не как инструкцию о печати ВПФ, а как описание способа подмены контекста с демонстрацией использования на примере создания ВПФ типовых конфигураций старых релизов. Во как. Сразу и не выговоришь!
К слову, способ на данный момент представляет из себя чисто теоретический интерес. Практического смысла я в нем не вижу. Я не применял его уже, наверное, года полтора.
помните, я спрашивал вас -
так вот, в сравнении с обычныч способом создания ВПФ - в чем преимущество подмены контекста при создании ВПФ? пока кроме как теоретического смысла я не нашел :)
ну, если осилите - то давайте, ждем.
только чтоб не там сумбурно, как эта статья - а кратко, по делу и последовательно по пунктам :)
а вообще сравнение методов создания ВПФ есть?
а помните, что я вам ответил
Сейчас же, многие печатные формы формируются вызовом процедур из модуля менеджера передачей ему массива ссылок. И мой метод становится излишним усложнением. А пользоваться разными методами для одного и того же - не есть путь джедая. Так что в любом случае я рекомендую делать ВПФ используя методичку poppy, указанную по ссылке выше и в самой статье.
опять процитирую себя же:
Раньше был смысл. Когда в самых потаённых уголках формирования печатных форм обращались к данными не через передаваемую ссылку, а напрямую - к реквизиту объекта. И чтобы не исправлять все такие использования на СсылкаНаОбъект.%ИмяРеквизита%, и заново не переопределять переменные модуля объекта, достаточно было подменить контекст.
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 66588
Создание 03.03.10 14:08
Обновление 09.11.11 16:29
Просмотры 67745
Загрузки 771
Рейтинг
166
Комментарии 73
Код открыт Не указано
Рубрики Печатные формы Математика и алгоритмы
Кому Разработчик
Тип файла Внешняя обработка (ert,epf)
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)