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

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;

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

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

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


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

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

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

 

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

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

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

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

 

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

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

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

15500 руб.

02.09.2020    201822    1113    410    

1021

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    35415    205    104    

195

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

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    23888    63    26    

92

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

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

16000 руб.

10.11.2023    16383    70    39    

88

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    34561    122    53    

165

Инструментарий разработчика WEB-интеграция 1С v8.3 1C v8.2 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Инструмент для генерации OpenApi (Swagger) спецификаций на основании файлов конфигураций 1С. Это консольное и десктопное приложение на языке Rust с полноценным редактором кода, содержащим автозамену и подсвечивание ошибок для быстрого и безошибочного написания документирующего комментария.

18000 руб.

22.11.2024    1590    1    0    

8

Инструментарий разработчика Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

6000 руб.

07.02.2018    107094    249    100    

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

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

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

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

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

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

в остальном - спасибо, публикация полезная
8. vicmos 43 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 Ответить
Оставьте свое сообщение