Изготовление внешних печатных форм

23.06.14

Разработка - Инструментарий разработчика

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

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

Если вам нужен макет счета или типового документа, то его можно скопировать из типовой в свою обработку методом: Ctrl+C (Копировать)   Ctrl+V(вставить)

По части регистрации внешней печатной формы приведем пример

Внимание: Работаем в модуле объекта!

Функция СведенияОВнешнейОбработке() Экспорт
// Регистрация ВПФ

//Переменные
ПараметрыРегистрации = Новый Структура;

МассивНазначений = Новый Массив;

//Параметры регистрации
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");//Вид формы
МассивНазначений.Добавить("Документ.СчетНаОплатуКлиенту");//Привязка к документу, здесь может быть ваш документ
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "НашаПечатнаяФормасчет");//название формы в справочнике внешних обработок
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);//Безопасный режим включен
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", "Дополнительная печатная форма к документу СчетНаОплатуКлиенту");

//Добавим команды к форме
ТаблицаКоманд = ПолучитьТаблицуКоманд();
 
ДобавитьКоманду(ТаблицаКоманд, "ИмяКнопки","ИмяМакета","ВызовСерверногоМетода",Истина,"ПечатьMXL");//Кнопке можно дать любое имя,А имя/миноним макета - как назовете макет при создании
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

Возврат ПараметрыРегистрации;

КонецФункции

Функция ПолучитьТаблицуКоманд() 
	Команды = Новый ТаблицаЗначений;
	
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); 
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); 
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); 
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); 
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); 
Возврат Команды; 
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование,ПоказыватьОповещение = Ложь, Модификатор = "")

НоваяКоманда = ТаблицаКоманд.Добавить(); 
НоваяКоманда.Представление = Представление; 
НоваяКоманда.Идентификатор = Идентификатор; 
НоваяКоманда.Использование = Использование; 
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; 
НоваяКоманда.Модификатор = Модификатор; 

КонецПроцедуры 

 По печатным формам можно так же в  поисковике пробить: Технология создания внешних печатных форм.

Для самого простого варианта, если не нужны никакие настройки на форме, то форму можно вообще не создавать и  обработка будет работать из дополнительных Отчетов и Обработок.

Я все таки хочу пояснить немного технологию изготовления собственных макетов

В управляемых формах  введена переменная: МассивОбъектов - она введена для того, чтобы мы могли распечатать одновременно несколько документов и они попадут на печать)

В функцию печати  для управляемых форм передаем как минимум две переменные:

Функция ПечатьДокумента(МассивОбъектов, ОбъектыПечати)

Функция должна называться как угодно, только не Печать() - так как процедура с именем Печать()  уже определена в типовых. Причем  как вспомогательная процедура  из  данных высшего уровня.

1. В типовых  сейчас(как бухгалтерия 3.0 или УТ11) в родных макетах   немного другие понятия в параметрах запроса, в отличие от Бухгалтерии2.0, как:

Для Родных форм

Запрос.УстановитьПараметр("ТекущийДокумент",ЭтотОбъект.Ссылка);

Для внешних печатных форм

Запрос.УстановитьПараметр("ТекущийДокумент",СсылкаНаОбъект);

Для бухгалтерии 3.0 и в том же духе

Запрос.УстановитьПараметр("МассивОбъектов",МассивОбъектов);

При чем  этой переменной можно пользоваться как для  самодельной печатной формы внутри конфигурации, так и для внешней печатной формы.

Приведем пример запроса из бух2.0

Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Номер,
	|	Дата,
	|	ДоговорКонтрагента,
	|	Контрагент КАК Получатель,
	|	Организация,
	|	Организация КАК Поставщик,
	|	СуммаДокумента,
	|	ВалютаДокумента,
	|	УчитыватьНДС,
	|	СуммаВключаетНДС
	|ИЗ
	|	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
	|
	|ГДЕ
	|	РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
	Шапка = Запрос.Выполнить().Выбрать();
	Шапка.Следующий();

и сделаем тот же запрос в бух.3.0

Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Номер,
	|	Дата,
	|	ДоговорКонтрагента,
	|	Контрагент КАК Получатель,
	|	Организация,
	|	Организация КАК Поставщик,
	|	СуммаДокумента,
	|	ВалютаДокумента,
	|	УчитыватьНДС,
	|	СуммаВключаетНДС
	|ИЗ
	|	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
	|
	|ГДЕ
	|	РеализацияТоваровУслуг.Ссылка В (&МассивОбъектов)";
	Шапка = Запрос.Выполнить().Выбрать();
	Пока Шапка.СледующийПоЗначениюПоля("Ссылка"); 

В обычных формах мы выполнили запрос и приступаем к заполнению документа, на управляемых формах мы сразу же врезаемся в Цикл.

Пока Шапка.СледующийПоЗначениюПоля("Ссылка") Цикл



КонецЦикла

 

И тут выскакивает ошибка: Неверное Значение аргумента!

Ошибка выскакивает, так как мы пытаемся  идти по полю, которого в запросе не существует. В запросе данного поля нет, для устранения ошибки необходимо добавить в запрос Поле: Ссылка

 

Далее в цикле начинаем заполнять данные. Привожу  образец из бухгалтерии 2.0:

 

ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
СведенияОбОрганизации   = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата);
ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,");
ОбластьМакета.Параметры.ПредставлениеПоставщика = ПредставлениеПоставщика;
ТабДокумент.Вывести(ОбластьМакета);

 

По сравнению с бухгалтерией 2.0 в бухгалтерии 3.0 все модули поменялись, теперь пример будет таким:

СведенияОПоставщике = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата);
ПредставлениеПоставщика = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПоставщике, "НаименованиеДляПечатныхФорм,");
Область.Параметры.ПредставлениеПродавца = ПредставлениеПоставщика;
ТабДок.Вывести(Область);

 

Пример для Управленияторговлей Ред11:

ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
ПредставлениеПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.Дата), "ПолноеНаименование");
ОбластьМакета.Параметры.Покупатель = ПредставлениеПокупателя;
ТабличныйДокумент.Вывести(ОбластьМакета);

В функцию СведенияОЮрФизЛице() необходимо передавать  поля  с псевдонимом, какой вы ему присвоили. То есть если в запросе было: ВЫБРАТЬ  Организация КАК Поставщик, то именно Поле с именем Поставщик должно фигурировать в переменной Шапка результата запроса.

Далее   хочу сказать про функцию ФорматСумм();

Бух2.0

ОбщегоНазначения.ФорматСумм(Шапка.СуммаДокумента);

Бухгалтерия3.0 и Торговля11

ОбщегоНазначенияБПВызовСервера.ФорматСумм(Шапка.СуммаДокумента)//Для бухгалтерии 3.0

ФормированиеПечатныхФорм.ФорматСумм(Шапка.СуммаДокумента)//Для Торговли11х

Для ERP2.0  больше функций.

ФормированиеПечатныхФорм.ФорматСумм(Шапка.СуммаДокумента)//Как и в Торговле 11
СуммаПлатежногоДокумента(Сумма, ВыводитьСуммуБезКопеек)//Вывод суммы в рублях без копеек
СуммаРубКоп(Сумма, Валюта, ВалютаРегламентированногоУчета)//Вывод суммы в рублях и копейках

 

Вывод  ответственных лиц.. уже есть разница  у бухгалтерии 3.0 и Торговле 11, так как в бухгалтерии 3.0  ответственные лица - это регистр сведений, а в управленииТорговлей11 - это справочник. Так же и функционал вывода тоже раскинут по разным модулям

Бухгалтерия 3.0

ОтветственныеЛицаОрганизации = ОтветственныеЛицаБП.ОтветственныеЛица(Шапка.Организация, Шапка.Дата, Шапка.ПодразделениеОрганизации);
ЗаместительПоПриказу = ОтветственныеЛицаОрганизации.РуководительПредставление;//Или здесь
ПечатьТорговыхДокументов.ЗаполнитьДанныеОтветственныхЛиц(СведенияОДокументе, Новый Структура("ЗаполнятьРуководителя"));
ПечатьТорговыхДокументов.ЗаполнитьДанныеОтветственныхЛиц(СведенияОДокументе, Новый Структура("ЗаполнятьРуководителя"));

УправлениеТорговлей ред11х

ОтветственныеЛицаОрганизации = ОтветственныеЛицаСервер.ПолучитьОтветственныеЛицаОрганизации(Шапка.Организация, Шапка.ДатаДок);
ФИОРуководителя = ОтвЛица.Руководитель.Наименование;

Для ERP2.0

ФизическиеЛица.ФамилияИнициалыФизЛица(Выборка.Кассир)//В торговле и ERP2.0
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
ОтветственныеЛицаСервер.СформироватьВременнуюТаблицуОтветственныхЛицДокументов(МассивОбъектов, МенеджерВременныхТаблиц);// ERP2.0

Функция СформироватьСуммуПрописью() тоже в различных конфигурациях  находится в разных модулях

Бух3.0

СуммаПрописью  = ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(СуммаКПрописи, ВалютаРеглУчета);

УТ11

СуммаПрописью  = РаботаСКурсамиВалют.СформироватьСуммуПрописью(Шапка.СуммаДокумента,Шапка.Валюта);

Вывод данных  физических лиц:

ОбластьПодписи.Параметры.Отпустил = ФизическиеЛица.ФамилияИнициалыФизЛица(Шапка.ОтпускПроизвел);//УТ11
МОЛ = ОтветственныеЛицаБП.ОтветственноеЛицоНаСкладе(Шапка.Склад, Шапка.Дата);//Вывод МОЛ для Бух3.0
ДанныеФизЛица = ОбщегоНазначенияБПВызовСервера.ДанныеФизЛица(Шапка.Организация, МОЛ, Шапка.Дата);//Вывод данных физлица для бух3.0

Вывод штрихкода на печать для торговли и ERP2.0

ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьМакета, Выборка.Ссылка);

Вывод номера на печать

ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Выборка.Номер,Ложь, Истина)//Это в большинстве конфигурация, бух3.0,Торговля11 и ERP2.0

 

Я поработаю над функцией  Формирования печатной формы. Примерно опишу  как я делала свою самодельную печатную форму.

Приведу  пример рисования печатной формы

Создаём  макет типа: ТабличныйДокумент.Перед нами откроется  таблица типа в Экселе

Далее для создания областей выделяем область ячеек(например слева выделяем несколько номеров ячеек), Далее  идем в меню:

Таблица/Имена/Назначить Имя

Пишем Имя, например: Заголовок и жмём ОК.

Для данного варианта есть ещё альтернативный пример, выделяя область, жмем комбинации клавиш(Ctrl+Shift+N) - эта комбинация вызывает  ту же команду: НазначитьИмя)

Так мы  можем   создавать   области, которые обычно в стандартных макетах помечаются именами вверху и слева..

Правда если это одна область, тогда

МояОбласть = Макет.ПолучитьОбласть("МояОбласть")

Если  область создана и слева и вверху, и у вас на нужной ячейке  получается   пересечение двух областей, тогда получаем сразу две области:

МояОбласть = Макет.ПолучитьОбласть(ГоризонтальнаяОбласть|ВертикальнаяОбласть);

По  теме ячеек...

Если вас не устраивают ячейки в виде таблицы, вы можете выбрать нужное количество ячеек и через Меню: Таблица/Ячейки/Объединить.

Если перестарались, то  там же: Таблица/Ячейки/РазбитьЯчейку.

Если вы создали область например слева у вас область, в которую объединено две строки с номерами ячеек и вам их мало, вы бы хотели побольше заголовок? Необязательно пересоздавать область, просто  встаньте на одну из цифр ячеек в области, щелкните по ней правой кнопкой мыши и выберите команду: Раздвинуть. И у вас в области будет не  две, а на три строки высота)))

То же самое касается ячеек в верхней части макета, их точно так же в случае надобности можно разбивать.

Для данных таблиц лучше создавать  две области: Область Шапка(с названиями колонок) и область Строка(с параметрами для заполнения

Создаем ОбластьШапки, выделяем ячейки и щелкаем правой кнопкой Мыши, в контекстном меню ВЫбираем: Свойства

В свойствах есть  такие функции, как: Границасверху,ГраницаСнизу,ГраницаСлева,ГраницаСправа и Обвести..

Для начала, если вам нужна просто колонка для наименования, то много строк там ни к чему. Выбираем колонку в области, выделяем все ячейки колонки и с помощью праволй кнопки мыши в контекстном меню выбираем "Объединить"

У вас получится пустая колонка для размещения текста.

далее в свойствах(так же вызываем через контекстное меню) выбираем нужный функционал

1.ВкладкаОсновные.Текст - там пишем имя колонки, например:Наименование

Далее:

Заполнение: Текст \\оставляем как есть

Использование:Ячейка\\оставляем как есть

Далее есть такое свойство, как горизонтальное положение и вертикальное положение - выставив вместо АВТО положение ЦЕНТР - вы сделайте наименование колонки в центре.

В Оформлении вы можете сделать побольше шрифт и изменить его свойства.

Границы. Границы вы можете сами задать как вам удобно.Можете по колонке брать и обводить, где поставите границу, там и будет черная черта  при выходе  таблицы в пользовательстком режиме.

 

Заполнение  ставится: Текст - Только для ТекстовыхЗаписей или  если  хотите в пользовательском режиме  внести какой комментарий вручную .

 

Для заполнения  из результатов запроса и прочих переменных,  необходимо свойство заполнения   присвоить значение: Параметр.

Это  чаще всего требуется  при заполнении области Строка, а так же при заполнении  Даты, Номера Документа, вывод дванных кладовщика, Руководителя, Бухгалтера..

Тогда мы можем спокойно заполнять макет так:

МояОбласть.Параметры.ИмяПараметра = ВыборкаЗапроса.НужноеПоле

Живой пример из обработки:

ОбластьТовар.Параметры.Наименование = Товары.Номенклатура;

 

Привожу пример для УТ11

 

Функция СформироватьПечатнуюФормуНакладная(МассивОбъектов, ОбъектыПечати)
    
УстановитьПривилегированныйРежим(Истина);
//Выбираем в запросе чисто те поля, которые нам нужны  для вывода.    

ЗапросШапка = Новый Запрос;
ЗапросШапка.УстановитьПараметр("МассивОбъектов",МассивОбъектов);
ЗапросШапка.Текст = "ВЫБРАТЬ
	|    РеализацияТоваровУслуг.Ссылка КАК Ссылка,
	|    РеализацияТоваровУслуг.Номер КАК Номер,
	|    РеализацияТоваровУслуг.Дата КАК Дата,
	|    РеализацияТоваровУслуг.Партнер КАК Партнер,
	|    РеализацияТоваровУслуг.Контрагент КАК Получатель,
	|    РеализацияТоваровУслуг.Организация КАК Организация,
	|    РеализацияТоваровУслуг.Организация.Префикс КАК Префикс,
	|    РеализацияТоваровУслуг.Валюта КАК Валюта,
	|    РеализацияТоваровУслуг.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
	|    ВЫБОР
	|        КОГДА РеализацияТоваровУслуг.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС)
	|                ИЛИ РеализацияТоваровУслуг.НалогообложениеНДС = ЗНАЧЕНИЕ(Перечисление.ТипыНалогообложенияНДС.ПродажаОблагаетсяЕНВД)
	|            ТОГДА ЛОЖЬ
	|        ИНАЧЕ ИСТИНА
	|    КОНЕЦ КАК УчитыватьНДС,
	|    РеализацияТоваровУслуг.Отпустил.Наименование КАК ОтпускПроизвел,
	|    РеализацияТоваровУслуг.СуммаДокумента
	|ИЗ
	|    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
	|ГДЕ
	|    РеализацияТоваровУслуг.Ссылка В(&МассивОбъектов)";
	
//Делаем запрос к табличной части товаров
ЗапросТовары = Новый Запрос;
ЗапросТовары.УстановитьПараметр("МассивОбъектов",МассивОбъектов);
ЗапросТовары.Текст = "ВЫБРАТЬ
	|    РеализацияТоваровУслугТовары.Номенклатура,
	|    РеализацияТоваровУслугТовары.Количество,
	|    РеализацияТоваровУслугТовары.Цена,
	|    РеализацияТоваровУслугТовары.Сумма,
	|    РеализацияТоваровУслугТовары.НомерСтроки,
	|    РеализацияТоваровУслугТовары.Упаковка
	|ИЗ
	|    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
	|ГДЕ
	|    РеализацияТоваровУслугТовары.Ссылка В(&МассивОбъектов)";

Шапка = ЗапросШапка.Выполнить().Выбрать();
ТабличныйДокумент = Новый ТабличныйДокумент;
ПервыйДокумент = Истина;

Пока Шапка.СледующийПоЗначениюПоля("Ссылка") Цикл
	// Макет необходимо получать для каждого документа,
	//т.к. размеры колонок изменяются динамически
	Макет = ПолучитьМакет("ВПФ_Накладная");
	Если Не ПервыйДокумент Тогда
		ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
	КонецЕсли;

	ПервыйДокумент    = Ложь;
	НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;

	// Выводим шапку накладной
	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
	ОбластьЗаголовок.Параметры.Номер = Шапка.Номер;
	ОбластьЗаголовок.Параметры.Дата = Шапка.Дата;
	ТабличныйДокумент.Вывести(ОбластьЗаголовок);

	ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
	ПредставлениеПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата), "ПолноеНаименование");
	// В скобках выводим Полное наименование, но можно вывести практически всю инфу про организацию, если что требуется, перечислить можно ИНН,КПП, ит.д.  
	ОбластьМакета.Параметры.Покупатель = ПредставлениеПокупателя;
	ТабличныйДокумент.Вывести(ОбластьМакета);

	ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
	ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы);


	//Здесь  можно пользоваться хоть Выборкой, хоть  таблицей значений, но все же лучше рекомендуется выборка.
	// Выводим строки таблицы Товары
	ОбластьТовар = Макет.ПолучитьОбласть("Строка");
	Товары = ЗапросТовары.Выполнить().Выбрать();
	Пока Товары.Следующий() Цикл
		ОбластьТовар.Параметры.КолВо = Товары.Количество;
		ОбластьТовар.Параметры.Наименование = Товары.Номенклатура;
		ОбластьТовар.Параметры.НомСтроки = Товары.НомерСтроки;
		ОбластьТовар.Параметры.Сумма = Товары.Сумма;
		ОбластьТовар.Параметры.Цена = Товары.Цена;
		ОбластьТовар.параметры.ЕдИзм = Товары.Упаковка; 
		ТабличныйДокумент.Вывести(ОбластьТовар);
	КонецЦикла; 
	 
	ОбластьПодписи = Макет.ПолучитьОбласть("Подписи");
	// Выводим Сумму прописью
	ОбластьПодписи.Параметры.СуммаИтог = ФормированиеПечатныхФорм.ФорматСумм(Шапка.СуммаДокумента, Шапка.Валюта);
	ОбластьПодписи.Параметры.СуммаПрописью  = РаботаСКурсамиВалют.СформироватьСуммуПрописью(Шапка.СуммаДокумента, Шапка.Валюта);
	ТабличныйДокумент.Вывести(ОбластьПодписи); 
КонецЦикла;

ТабличныйДокумент.АвтоМасштаб = Истина; 
Возврат ТабличныйДокумент;

КонецФункции

 

Главное правило, следить за перемнными, чтобы не было перменных с одинаковым названием. Если вы уже один раз получили значение перменной, то потом чтобы ею воспользоваться, не надо её получать второй раз. Главное не потерять из виду.

Обработка в вложении для экспериментов.

Отладчик внешних печатных форм можно скачать тут

Обработка для тестирования внешней печатной формы

 

Информация будет добавляться по мере  надобности)

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122080    670    389    

714

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7273    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8000 руб.

10.11.2023    3515    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2520 руб.

14.01.2013    177730    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99343    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18105    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28102    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23599    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. AnryMc 849 12.02.14 18:07 Сейчас в теме
Для "лентяев"

Конструктор внешних печатных форм NEW beta (обычные и управляемые приложения!)

http://infostart.ru/public/162019/
JohnConnor; artbear; TrinitronOTV; +3 Ответить
3. TrinitronOTV 14 12.02.14 18:36 Сейчас в теме
(1) AnryMc, я пользуюсь обработкой, которая по ссылке указана, очень помогает быстро сделать внешнюю печатную форму
2. sudmorsh 57 12.02.14 18:12 Сейчас в теме
4. artbear 1448 19.02.14 11:04 Сейчас в теме
Опять старые баяны описываем. Таких статей на сайте уже с десяток, наверное
Aspire1C; ZOMI; +2 Ответить
5. Bukaska 140 19.02.14 11:06 Сейчас в теме
(4) artbear, На сайте баянов с десяток по части регистрации разве что, подробнее не видала.. скидывайте ссылки
7. AnryMc 849 19.02.14 15:21 Сейчас в теме
(4) artbear,

"Повторение - мать учения"
"Новое - хорошо забытое старое"
...
6. sdn-1 153 19.02.14 14:55 Сейчас в теме
Несущественное замечание к оформлению макетов:

На картинке публикации в шапке не очень хорошо смотрится, когда существуют разрывы между ячейками (как в тексте: Накладная№_______НомерДокумента_____от_____ДатаДокумента)

Для улучшения смотрибельности - можно ячейке макета установить заполнение - Шаблон и в самой ячейке заполнить текст примерно так: <Накладная № [Номер] от [Дата]> - в таком случае некрасивых разрывов не будет.

в остальном - спасибо, публикация полезная
8. vicmos 42 19.02.14 17:09 Сейчас в теме
9. Odinas 21.02.14 09:24 Сейчас в теме
Да ладно, именно такой подробной и хорошо оформленной статьи тут не видел. Так что ставлю плюс.
10. higs 11.03.14 07:42 Сейчас в теме
А мне понравилось изложение материала, хоть и практически все уже известно. И кое-что делаю сам не так, но очень интересно было почитать, какие еще есть варианты и ход действий для создания ВПФ. Так что спасибо за подробное разжевывание! А то как вспомню начало работы в 8.3 и как раз с создания ВПФ. У кого-то это будут вовсе даже и не грабли, а ровная дорога.
11. Styvi 6 28.05.14 10:39 Сейчас в теме
Полезная статья для новичков... - ставим плюс...
Вот бы ещё собрать в одно место изменения в реквизитах после рестайлинга конфигураций, а также в названиях Процедур общих модулей... Иногда совершенно непонятно, зачем было менять Наименование реквизита или объекта, если смысл полностью сохранился...
Я часто занимаюсь переносом данных между базами по ОЛЕ и по ходу дела корректирую имена реквизитов в обработках обмена...
Например, в БП3.0 по сравнению с БП2.0:
- в документе РеализацияТоваровУслуг удалён реквизит УчитыватьНДС;
- Справочник КлассификаторСтранМира стал именоваться СтраныМира;
- реквизит Номенклатуры БазоваяЕдиницаИзмерения именуется ЕдиницаИзмерения и т.д.
...
- процедура заполнения счетов учёта в строке ТЧ документа РТУ вместо "Док.ЗаполнитьСчетаУчетаВСтрокеТабЧасти(НоваяСтрокаДока, "Товары", Истина)" будет выглядеть уже так:
СчетаУчета = БухгалтерскийУчетПереопределяемый.ПолучитьСчетаУчетаНоменклатуры(Организация, НоваяСтрокаДока.Номенклатура, НовыйДок.Склад, НовыйДок.Дата, Ложь);
НоваяСтрокаДока.СчетУчета=СчетаУчета.СчетУчета;
НоваяСтрокаДока.СчетДоходов=СчетаУчета.СчетДоходов; и т.д.
...
Rastate; e-kash; Bukaska; +3 Ответить
Оставьте свое сообщение