Генератор кода 8.x (Управляемые и обычные формы) Версия от 02.10.2024

02.10.24

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

Часто возникает необходимость написания кода, создающего новые элементы справочников, или новые объекты документов программно, например, при написании обмена данными. Я предлагаю обработку, которая при указании вида соответствующего справочника или документа, на основании метаданных конфигурации, последовательно перебирая реквизиты и табличные части, создаст болванку кода

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ГенераторКода 8.2 8.3
.epf 30,47Kb ver:от 2024.10.02
399
399 Скачать (1 SM) Купить за 1 850 руб.
ГенераторКода81
.epf 15,09Kb
41
41 Скачать (1 SM) Купить за 1 850 руб.

Молочников Олег Spb. 2024.

Генератор кода .

 

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

Часто возникает необходимость написания кода, создающего новые элементы справочников, или новые объекты документов программно, например, при написании обмена данными.

 

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

Если реквизит Объект Данных не заполнен, то  болванку кода удобна для программного копирования существующего объекта:

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

В этой версии добавлены:

- Быстрое открытие документа или справочника по гиперссылке (только управляемые формы).

- Для конфигураций на БСП появилась возможность зарегистрировать обработку в дополнительных обработках что дает возможность получить код создания элемента

или справочника одним нажатием кнопки из любого открытого объекта.

-Для  справочников добавляется строка вида:

СсылкаОбъект = Справочники.Должности.ПолучитьСсылку(Новый УникальныйИдентификатор("8183748b-cd62-11e4-869d-0050568b35ac"));

Очень удобно если нужна быстро найти элемент по УИ.

Пример заполнения когда выбран объект (справочник):


СсылкаОбъект = Справочники.ГрафикиОплаты.ПолучитьСсылку(Новый УникальныйИдентификатор("b49127da-752b-11df-b338-0011955cba6b"));
НовыйОбъект = Справочники.ГрафикиОплаты.СоздатьОбъект();
НовыйОбъект.ФормаОплаты=Перечисления.ФормыОплаты.ПустаяСсылка(); //Формы оплаты
НовыйОбъект.ТолькоКредитныеЭтапы=Истина; //Булево
НовыйОбъект.Календарь=Справочники.ПроизводственныеКалендари.ПустаяСсылка(); //Производственный календарь
//----------------------------  ТЧ Этапы-----------------------------------------
//------------  строка 1----------------
	НоваяСтрока = НовыйОбъект.Этапы.Добавить();                  
	НоваяСтрока.ВариантОплаты=Перечисления.ВариантыКонтроляОплатыКлиентом.КредитПослеОтгрузки;  //Контроль                  
	НоваяСтрока.Сдвиг=21;  //Число                  
	НоваяСтрока.ПроцентПлатежа=100;  //Число                  
	НоваяСтрока.ПроцентЗалогаЗаТару=0;  //Число                  
	НоваяСтрока.ВариантОтсчета=Перечисления.ВариантыОтсчетаДатыПлатежа.ОтДатыОтгрузки;  //Варианты отсчета даты платежа

Пример заполнения когда не выбран объект (справочник):

НовыйОбъект = Справочники.ВнешниеОбработки.СоздатьОбъект();
СтарыйОбъект = НовыйОбъект; // заглушка, поменяйте.
НовыйОбъект.ХранилищеВнешнейОбработки=неопределено; //Хранилище значения
НовыйОбъект.ВидОбработки=Перечисления.ВидыДополнительныхВнешнихОбработок.ПустаяСсылка(); //Виды дополнительных внешних обработок
НовыйОбъект.Комментарий=""; //Строка
НовыйОбъект.КомментарийКФайлуИсточнику=""; //Строка
//ЗаполнитьЗначенияСвойств(НовыйОбъект,СтарыйОбъект," ХранилищеВнешнейОбработки, ВидОбработки, Комментарий, КомментарийКФайлуИсточнику");

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

Пример заполнения когда не выбран объект (документ):

НовыйДокумент = Документы.Доверенность.СоздатьДокумент();
СтарыйДокумент = НовыйДокумент; // заглушка, поменяйте.
НовыйДокумент.Дата='00010101000000'; //Дата документа
НовыйДокумент.Номер=""; //Номер документа
НовыйДокумент.Организация=Справочники.Организации.ПустаяСсылка(); //Организация
НовыйДокумент.ФизЛицо=Справочники.ФизическиеЛица.ПустаяСсылка(); //Физические лица
НовыйДокумент.БанковскийСчетОрганизации=Справочники.БанковскиеСчета.ПустаяСсылка(); //Банковский счет
НовыйДокумент.Контрагент=Справочники.Контрагенты.ПустаяСсылка(); //Контрагент
НовыйДокумент.ДоговорКонтрагента=Справочники.ДоговорыКонтрагентов.ПустаяСсылка(); //Договор контрагента
НовыйДокумент.Сделка=неопределено; //Счет на оплату поставщика, Заказ поставщику, Заказ покупателя, Счет на оплату покупателю
НовыйДокумент.ДатаДействия='00010101000000'; //Дата
НовыйДокумент.НаПолучениеОт=""; //Строка
НовыйДокумент.ПоДокументу=""; //Строка
НовыйДокумент.Подразделение=Справочники.Подразделения.ПустаяСсылка(); //Подразделение
НовыйДокумент.Комментарий=""; //Строка
НовыйДокумент.Ответственный=Справочники.Пользователи.ПустаяСсылка(); //Пользователь
//ЗаполнитьЗначенияСвойств(НовыйДокумент,СтарыйДокумент," Организация, ФизЛицо, БанковскийСчетОрганизации, Контрагент, ДоговорКонтрагента, Сделка, ДатаДействия, НаПолучениеОт, ПоДокументу, Подразделение, Комментарий, Ответственный");

Для каждого СтараяСтрока из СтарыйДокумент.Товары цикл
НоваяСтрока = НовыйДокумент.Товары.Добавить();
НоваяСтрока.НаименованиеТовара=""; //Строка
НоваяСтрока.ЕдиницаПоКлассификатору=Справочники.КлассификаторЕдиницИзмерения.ПустаяСсылка(); //Классификатор единиц измерения
НоваяСтрока.Количество=0; //Число
//ЗаполнитьЗначенияСвойств(НоваяСтрока,СтараяСтрока," НаименованиеТовара, ЕдиницаПоКлассификатору, Количество");
КонецЦикла;
//НовыйДокумент.Товары.Свернуть(" НаименованиеТовара, ЕдиницаПоКлассификатору, Количество","");

 

 

После чего программисту остается лишь удалить лишний для него код, и заменить «неопределено” на фактические значения. Только что с помощью этого генератора за 16 минут ( с отладкой)  создал код для формирования трех документов давальческой схемы при выгрузке в бухгалтерию.

 

Если реквизит Объект данных заполнен, то болванка удобна для  программного заполнения копии выбранного  объекта, данными выбранного объекта.  Удобно, когда мы создаем свои объекты, похожие по заполнению на объекты, которые уже есть в системе.

Пример заполнения когда выбран объект (справочник):

НовыйДокумент = Документы.АктВыполненныхРабот.СоздатьДокумент();
НовыйДокумент.Дата=Дата(2024, 08, 02, 12, 00, 00); //Дата документа
НовыйДокумент.Номер="ДС00-000001"; //Номер документа
НовыйДокумент.АктПоЗаказам=Ложь; //
НовыйДокумент.БанковскийСчетКонтрагента=Справочники.БанковскиеСчетаКонтрагентов.ПустаяСсылка(); // // Справочники.БанковскиеСчетаКонтрагентов.ПустаяСсылка()
НовыйДокумент.БанковскийСчетОрганизации=Справочники.БанковскиеСчетаОрганизаций.ПустаяСсылка(); // // Справочники.БанковскиеСчетаОрганизаций.ПустаяСсылка()
НовыйДокумент.Валюта=Справочники.Валюты.ПолучитьСсылку(Новый УникальныйИдентификатор("26093579-c180-11e4-a7a9-000d884fd00d")); // // Справочники.Валюты.НайтиПоНаименованию("RUB"); // (643)
НовыйДокумент.ВалютаВзаиморасчетов=Справочники.Валюты.ПолучитьСсылку(Новый УникальныйИдентификатор("26093579-c180-11e4-a7a9-000d884fd00d")); // // Справочники.Валюты.НайтиПоНаименованию("RUB"); // (643)
НовыйДокумент.ДополнительнаяИнформация=""; //
НовыйДокумент.ДополнительнаяИнформацияШапки=""; //
НовыйДокумент.ЗаказКлиента=Документы.ЗаказКлиента.ПустаяСсылка(); // // Документы.ЗаказКлиента.ПустаяСсылка()
НовыйДокумент.Касса=Справочники.Кассы.ПолучитьСсылку(Новый УникальныйИдентификатор("49549df2-c402-11e4-946e-bcaec56cc144")); // // Справочники.Кассы.НайтиПоНаименованию("Деловой союз (RUB)"); // ()
НовыйДокумент.Комментарий=""; //
НовыйДокумент.Контрагент=Справочники.Контрагенты.ПолучитьСсылку(Новый УникальныйИдентификатор("45631ad8-1bf7-11e1-afc4-0015e9b8c48d")); // // Справочники.Контрагенты.НайтиПоНаименованию("Протон-Сервис"); // ()
НовыйДокумент.Менеджер=Справочники.Пользователи.ПолучитьСсылку(Новый УникальныйИдентификатор("0b18043c-8804-11ed-83f2-edad5095601b")); // // Справочники.Пользователи.НайтиПоНаименованию("Администратор"); // ()
НовыйДокумент.НалогообложениеНДС=Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС; // // Продажа облагается НДС
НовыйДокумент.Организация=Справочники.Организации.ПолучитьСсылку(Новый УникальныйИдентификатор("c58c98b1-c3e6-11e4-946e-bcaec56cc144")); // // Справочники.Организации.НайтиПоНаименованию("Деловой союз"); // ()
НовыйДокумент.Партнер=Справочники.Партнеры.ПолучитьСсылку(Новый УникальныйИдентификатор("45631ad7-1bf7-11e1-afc4-0015e9b8c48d")); // // Справочники.Партнеры.НайтиПоНаименованию("Альфа-Протон"); // (ЦУ-00000009)
НовыйДокумент.Подразделение=Справочники.СтруктураПредприятия.ПустаяСсылка(); // // Справочники.СтруктураПредприятия.ПустаяСсылка()
НовыйДокумент.Сделка=Справочники.СделкиСКлиентами.ПустаяСсылка(); // // Справочники.СделкиСКлиентами.ПустаяСсылка()
НовыйДокумент.СкидкиРассчитаны=Истина; //
НовыйДокумент.Согласован=Истина; //
НовыйДокумент.Соглашение=Справочники.СоглашенияСКлиентами.ПолучитьСсылку(Новый УникальныйИдентификатор("f9b4a7ed-e3ae-11e6-b139-0050568b35ac")); // // Справочники.СоглашенияСКлиентами.НайтиПоНаименованию("ДС Оптовые продажи"); // ()
НовыйДокумент.СуммаВзаиморасчетов=12000; //
НовыйДокумент.СуммаДокумента=12000; //
НовыйДокумент.ФормаОплаты=Перечисления.ФормыОплаты.Наличная; // // Наличная
НовыйДокумент.ЦенаВключаетНДС=Ложь; //
НовыйДокумент.ГруппаФинансовогоУчета=Справочники.ГруппыФинансовогоУчетаРасчетов.ПустаяСсылка(); // // Справочники.ГруппыФинансовогоУчетаРасчетов.ПустаяСсылка()
НовыйДокумент.КартаЛояльности=Справочники.КартыЛояльности.ПустаяСсылка(); // // Справочники.КартыЛояльности.ПустаяСсылка()
НовыйДокумент.Договор=Справочники.ДоговорыКонтрагентов.ПолучитьСсылку(Новый УникальныйИдентификатор("47a7668f-7e45-11ef-ae45-c42360c5ca82")); // // Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию("йыыы"); // ()
НовыйДокумент.Автор=Справочники.Пользователи.ПолучитьСсылку(Новый УникальныйИдентификатор("0b18043c-8804-11ed-83f2-edad5095601b")); // // Справочники.Пользователи.НайтиПоНаименованию("Администратор"); // ()
НовыйДокумент.КонтактноеЛицо=Справочники.КонтактныеЛицаПартнеров.ПолучитьСсылку(Новый УникальныйИдентификатор("45631ad9-1bf7-11e1-afc4-0015e9b8c48d")); // // Справочники.КонтактныеЛицаПартнеров.НайтиПоНаименованию("Петров Олег Васильевич"); // ()
НовыйДокумент.Руководитель=Справочники.ОтветственныеЛицаОрганизаций.ПолучитьСсылку(Новый УникальныйИдентификатор("5bd8133b-f3bb-11e4-92f1-0050568b35ac")); // // Справочники.ОтветственныеЛицаОрганизаций.НайтиПоНаименованию("Новиков В.В."); // ()
НовыйДокумент.ГлавныйБухгалтер=Справочники.ОтветственныеЛицаОрганизаций.ПустаяСсылка(); // // Справочники.ОтветственныеЛицаОрганизаций.ПустаяСсылка()
НовыйДокумент.ПорядокРасчетов=Перечисления.ПорядокРасчетов.ПоНакладным; // // По расчетным документам
НовыйДокумент.ИдентификаторПлатежа="АКТ2408ДС00000001001"; //
НовыйДокумент.НаправлениеДеятельности=Справочники.НаправленияДеятельности.ПустаяСсылка(); // // Справочники.НаправленияДеятельности.ПустаяСсылка()
НовыйДокумент.КурсЧислитель=1; //
НовыйДокумент.КурсЗнаменатель=1; //
НовыйДокумент.Основание=""; //
НовыйДокумент.ОснованиеДата=Дата(1, 1, 1, 0, 0, 0); //
НовыйДокумент.ОснованиеНомер=""; //
НовыйДокумент.ОплатаВВалюте=Ложь; //
НовыйДокумент.ЭтапГосконтрактаЕИС=""; //
НовыйДокумент.ГрафикОплаты=Справочники.ГрафикиОплаты.ПолучитьСсылку(Новый УникальныйИдентификатор("f0e40f8d-7390-11df-b338-0011955cba6b")); // // Справочники.ГрафикиОплаты.НайтиПоНаименованию("Частичная предоплата"); // ()
//----------------------------  ТЧ Услуги-----------------------------------------
//------------  строка 1----------------
	НоваяСтрока = НовыйДокумент.Услуги.Добавить();                  
	НоваяСтрока.Номенклатура=Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор("5ca073eb-8661-11da-9aea-000d884f5d77"));  // // Справочники.Номенклатура.НайтиПоНаименованию("Аренда офиса"); // (000000122  )                  
	НоваяСтрока.Характеристика=Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка();  // // Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка()                  
	НоваяСтрока.Содержание="Аренда офиса";  //                  
	НоваяСтрока.Количество=1;  //                  
	НоваяСтрока.ВидЦены=Справочники.ВидыЦен.ПустаяСсылка();  // // Справочники.ВидыЦен.ПустаяСсылка()                  
	НоваяСтрока.Цена=10000;  //                  
	НоваяСтрока.Сумма=10000;  //                  
	НоваяСтрока.СтавкаНДС=Справочники.СтавкиНДС.ПолучитьСсылку(Новый УникальныйИдентификатор("6c3079c7-80c7-11ea-80e1-60a44ccf99dc"));  // // Справочники.СтавкиНДС.НайтиПоНаименованию("20%"); // ()                  
	НоваяСтрока.СуммаНДС=2000;  //                  
	НоваяСтрока.СуммаСНДС=12000;  //                  
	НоваяСтрока.КодСтроки=0;  //                  
	НоваяСтрока.СуммаРучнойСкидки=0;  //                  
	НоваяСтрока.СуммаАвтоматическойСкидки=0;  //                  
	НоваяСтрока.ПроцентРучнойСкидки=0;  //                  
	НоваяСтрока.ПроцентАвтоматическойСкидки=0;  //                  
	НоваяСтрока.СуммаВзаиморасчетов=12000;  //                  
	НоваяСтрока.КлючСвязи=1;  //                  
	НоваяСтрока.ЗаказКлиента=Неопределено;  //                  
	НоваяСтрока.ИдентификаторСтроки="26503d18-3b1a-4721-b8af-38097fb5c2bd";  //                  
	НоваяСтрока.НоменклатураНабора=Справочники.Номенклатура.ПустаяСсылка();  // // Справочники.Номенклатура.ПустаяСсылка()                  
	НоваяСтрока.ХарактеристикаНабора=Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка();  // // Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка()                  
	НоваяСтрока.АналитикаУчетаНаборов=Справочники.КлючиАналитикиУчетаНаборов.ПустаяСсылка();  // // Справочники.КлючиАналитикиУчетаНаборов.ПустаяСсылка()                  
	НоваяСтрока.Назначение=Справочники.Назначения.ПустаяСсылка();  // // Справочники.Назначения.ПустаяСсылка()                  
	НоваяСтрока.ОбъектРасчетов=Справочники.ОбъектыРасчетов.ПолучитьСсылку(Новый УникальныйИдентификатор("47a76694-7e45-11ef-ae45-c42360c5ca82"));  // // Справочники.ОбъектыРасчетов.НайтиПоНаименованию("Акт выполненных работ ДС00-000001 от 02.08.2024 12:00:00"); // ()                  
	НоваяСтрока.Подразделение=Справочники.СтруктураПредприятия.ПустаяСсылка();  // // Справочники.СтруктураПредприятия.ПустаяСсылка()                  
	НоваяСтрока.НоменклатураПартнера=Справочники.НоменклатураКонтрагентов.ПустаяСсылка();  // // Справочники.НоменклатураКонтрагентов.ПустаяСсылка()                  
	НоваяСтрока.СуммаБонусныхБалловКСписанию=0;  //                  
	НоваяСтрока.СуммаБонусныхБалловКСписаниюВВалюте=0;  //                  
	НоваяСтрока.СуммаНачисленныхБонусныхБалловВВалюте=0;  //
//----------------------------  ТЧ СкидкиНаценки-----------------------------------------
//----------------------------  ТЧ ДополнительныеРеквизиты-----------------------------------------
//----------------------------  ТЧ РасшифровкаПлатежа-----------------------------------------
//------------  строка 1----------------
	НоваяСтрока = НовыйДокумент.РасшифровкаПлатежа.Добавить();                  
	НоваяСтрока.Сумма=12000;  //                  
	НоваяСтрока.СуммаВзаиморасчетов=12000;  //                  
	НоваяСтрока.ОбъектРасчетов=Справочники.ОбъектыРасчетов.ПолучитьСсылку(Новый УникальныйИдентификатор("47a76694-7e45-11ef-ae45-c42360c5ca82"));  // // Справочники.ОбъектыРасчетов.НайтиПоНаименованию("Акт выполненных работ ДС00-000001 от 02.08.2024 12:00:00"); // ()
//----------------------------  ТЧ ЭтапыГрафикаОплаты-----------------------------------------
//------------  строка 1----------------
	НоваяСтрока = НовыйДокумент.ЭтапыГрафикаОплаты.Добавить();                  
	НоваяСтрока.Заказ=Неопределено;  //                  
	НоваяСтрока.СверхЗаказа=Ложь;  //                  
	НоваяСтрока.ВариантОплаты=Перечисления.ВариантыКонтроляОплатыКлиентом.ПредоплатаДоОтгрузки;  // // Оплата до отгрузки                  
	НоваяСтрока.ДатаПлатежа=Дата(2024, 08, 02, 00, 00, 00);  //                  
	НоваяСтрока.СуммаПлатежа=3600;  //                  
	НоваяСтрока.ПроцентПлатежа=30;  //                  
	НоваяСтрока.СуммаВзаиморасчетов=3600;  //                  
	НоваяСтрока.Сдвиг=0;  //                  
	НоваяСтрока.ОбъектРасчетов=Справочники.ОбъектыРасчетов.ПолучитьСсылку(Новый УникальныйИдентификатор("47a76694-7e45-11ef-ae45-c42360c5ca82"));  // // Справочники.ОбъектыРасчетов.НайтиПоНаименованию("Акт выполненных работ ДС00-000001 от 02.08.2024 12:00:00"); // ()                  
	НоваяСтрока.СуммаЗалогаЗаТару=0;  //                  
	НоваяСтрока.СуммаВзаиморасчетовПоТаре=0;  //                  
	НоваяСтрока.ПроцентЗалогаЗаТару=0;  //                  
	НоваяСтрока.ВариантОтсчета=Перечисления.ВариантыОтсчетаДатыПлатежа.ДоДатыОтгрузки;  // // до даты отгрузки
//----------------------------  ТЧ НачислениеБонусныхБаллов-----------------------------------------

 

Другие разработки автора:

Подсистема штрихкодирования серий номенклатуры (УТ 11, КА, ERP)Подсистема штрихкодирования серий номенклатуры (УТ 11, КА, ERP)
Подсистема 'Входной контроль' для ERP ,КА , УТ 11
Подсистема 'Входной контроль' для ERP ,КА , УТ 11
Электронный обходной лист (расширение) для ERP, ЗУП, КА
Отправка электронных писем по задолженностям клиентов (ERP, УТ 11)Отправка электронных писем по задолженностям клиентов (ERP, УТ 11)
Excel Studio for 1CExcel Studio for 1C
Настраиваемый управленческий балансНастраиваемый управленческий баланс
Динамические отчеты СКД
Динамические отчеты СКД
Фоновая отправка уведомлений
Генератор кодаГенератор кода

 

 

АкцияВы можете скачать эту разработку в  составе архива всех моих разработок, которые я предлагаю за StartMone, по Специальной  цене:  //infostart.ru/public/960899/#archive

Обновление от 15.02.2017

Добавил управляемую форму

Обновление от 21.06.2012

Теперь вместо 'неопределено' реквизитам присваивается пустое значение типа.  Что позволяет сэкономить еще некотрое количества времени при написании кода.

Для документов добавились "Дата" и "Номер".

PS: Надеюсь вам понравится эта и другие мои разработки на //infostart.ru/profile/48714/.

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

Молочников Олег Spb. 2021.

 

Проверено на следующих конфигурациях и релизах:

  • 1С:ERP Управление предприятием 2, релизы 2.5.19.63, 2.5.12.73
  • Комплексная автоматизация, редакция 1.1, релизы 1.0.2.3

Генератор кода справочник документ

См. также

SALE! 15%

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

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

10000 руб.

02.09.2020    159330    872    399    

861

SALE! 15%

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

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

8400 7140 руб.

20.08.2024    7750    55    22    

66

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

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

9360 руб.

17.05.2024    23409    68    45    

117

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10403    36    20    

61

SALE! 15%

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

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

22200 19980 руб.

06.10.2023    15383    35    7    

70

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    187959    1138    0    

912

SALE! 15%

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 12750 руб.

07.10.2021    17295    6    32    

42

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

Расширение "Входной контроль" в 1С:ERP, КА 2.5, УТ11.5 и предназначено для удобства отражения операций входного контроля и их результатов в учетной системе, а также фотофиксации брака.

12000 руб.

02.02.2019    36750    43    22    

41
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. NovSL 9 30.09.11 13:43 Сейчас в теме
До OpenConf 7-го далеко, но все же приятно использовать
ВадимЛитовченко; mdzen; +2 Ответить
2. cool.vlad4 2 30.09.11 13:44 Сейчас в теме
это можно в консоль кода или в запросник добавить...
3. milkers 2918 30.09.11 13:52 Сейчас в теме
(3) У меня есть некоторые планы по развитию этой темы. Сложно развивать чужие проекты
ВадимЛитовченко; +1 Ответить
4. DragonAgo 16 30.09.11 16:08 Сейчас в теме
Интересная обработка
ВадимЛитовченко; +1 Ответить
5. fishca 1259 30.09.11 16:11 Сейчас в теме
(0)Лень-двигатель прогресса! Спасибо!
6. anig99 2852 30.09.11 20:59 Сейчас в теме
текстовое поле на форме можно сделать типом Программный код (или как-то так), тогда текст будет раскрашиваться
ВадимЛитовченко; echo77; +2 Ответить
7. shisha136 01.10.11 12:56 Сейчас в теме
А что делать начинающим программистам? Совсем отупеют! Либо не быть им хорошими программистами =)
ВадимЛитовченко; +1 Ответить
8. K_A_O 539 01.10.11 13:05 Сейчас в теме
Более интересный набор конструкторов есть в обработке "Консоль выполнения произвольных текстов модуля"
http://infostart.ru/public/61601/
ВадимЛитовченко; tomvlad; Yasen; Арчибальд; +4 Ответить
9. RustIG 1747 01.10.11 14:22 Сейчас в теме
(0) классная вещь! хороший инструмент! отличная идея!
спасибо! :)
пригодится не только при обменах!
ВадимЛитовченко; +1 Ответить
10. artbear 1563 01.10.11 14:41 Сейчас в теме
Подобный код уже сейчас можно вставлять прямо в Конфигураторе с помощью проекта Снегопат www.snegopat.ru
Всем рекомендую
ЗЫ дело за малым - написать скрипт для Снегопата, вставляющий подобный код прямо в открытое окно.
ИМХО не должно быть сложно, т.к. фактически очень много из кода 1С доступно для выполнения в скриптах.
ВадимЛитовченко; sound; JohnyDeath; +3 Ответить
11. cool.vlad4 2 01.10.11 14:59 Сейчас в теме
(10) Артур может стоит подробнее описать(статью) snegopat? Уже не первый раз слышу, в принципе и на сайте был, и запускал...
13. artbear 1563 01.10.11 15:13 Сейчас в теме
(11) Пока что Снегопат на стадии тестирования, в открытую продажу еще не вышел.
Поэтому пока не создаю подобную публикацию.
В будущем у меня публикация запланирована, если автор, Саша Орефков, сам не выложит на сайт.
ИМХО он наверняка это сделает после выхода релиза, тем более, что это несложно - скопировать HTML со своего сайта на ИС.
ЗЫ Кучу фич уже юзаем :)

(12) У меня есть такая публикация :) Правда, давненько не обновлял :(
12. cool.vlad4 2 01.10.11 15:01 Сейчас в теме
Вообще неплохо бы как-то аккумулировать мысли по поводу кодинга, где-нибудь на форуме/блоге...
ВадимЛитовченко; +1 Ответить
14. WKBAPKA 215 01.10.11 15:15 Сейчас в теме
ну не знаю, где это может пригодиться...
для типовых не подходит...
для конфигураций с нуля, я сторонник унификации, лучше один раз потратить время, написать общие процедуры по заполнению параметров новых документов!
для обмена через СОМ, может быть, но код в этом случае достаточно специфичен, требует написания дополнительных функций... так что в чем полезность данной идеи не понимаю!
ВадимЛитовченко; +1 Ответить
15. vl88 01.10.11 16:59 Сейчас в теме
шикарный конструктор!
ВадимЛитовченко; +1 Ответить
16. KliMich 01.10.11 20:59 Сейчас в теме
Хорошая предпосылка для создания OpenConf для 8-ки!
ВадимЛитовченко; +1 Ответить
17. RustIG 1747 02.10.11 16:27 Сейчас в теме
(0) корректура кода для улучшений :)

Процедура ТипДанныхПриИзменении(Элемент)
	
	ВидДанных = Неопределено;	
	
	СписокОбъектовМетаданных = Новый СписокЗначений;
	
	Для Каждого МетаданныеДокумент Из Метаданные[ТипДанных] Цикл
		СписокОбъектовМетаданных.Добавить(МетаданныеДокумент.Имя, МетаданныеДокумент.Синоним);
	КонецЦикла;
	
	ЭлементыФормы.ВидДанных.СписокВыбора = СписокОбъектовМетаданных;
	
КонецПроцедуры
Показать


Далее, ставим галочку в Палитре свойств у Элемента формы "ВидДанных" на закладке Использование для параметра "РежимВыбораИзСписка". Это для быстрого поиска объекта: после набора первых символов названия объекта и нажатия Enter в поле ввода "Вид данных".
18. RustIG 1747 02.10.11 17:04 Сейчас в теме
(0) Начал использовать сей инструмент, задался вопросом: а тип "Виды поступлений товаров" - это справочник или перечисление? И тогда родилось ... предложение по расширению функциоанала:

я вместо кода
 + Реквизит.Тип 


записал так
 + ОпределитьТипЗначения(Тип) 


а функцию определил так
Функция ОпределитьТипЗначения(Тип) Экспорт
	
	СоставТипов = "";
	
	МассивТипов = Тип.Типы();
	Если МассивТипов.Количество() = 1 Тогда
		
		Если Справочники.ТипВсеСсылки().СодержитТип(МассивТипов[0]) Тогда
			СоставТипов = "Справочник ";
		ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(МассивТипов[0]) Тогда
			СоставТипов = "Документ ";
		ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(МассивТипов[0]) Тогда
			СоставТипов = "Перечисление ";
		КонецЕсли;	
		
		Возврат СоставТипов + Тип;
		
	Иначе //составной тип данных
		
		Для Каждого Эл Из МассивТипов Цикл
			
			Если Справочники.ТипВсеСсылки().СодержитТип(Эл) Тогда
				СоставТипов = СоставТипов + " Справочник " + Эл + ",";
			ИначеЕсли Документы.ТипВсеСсылки().СодержитТип(Эл) Тогда
				СоставТипов = СоставТипов + " Документ " + Эл + ",";
			ИначеЕсли Перечисления.ТипВсеСсылки().СодержитТип(Эл) Тогда
				СоставТипов = СоставТипов + " Перечисление " + Эл + ",";
			Иначе
				СоставТипов = СоставТипов + " " + Эл + ",";
			КонецЕсли;	 
			
		КонецЦикла;
		
		Возврат СоставТипов;
		
	КонецЕсли;
	
КонецФункции
Показать


Далее, если использовать КвалификаторыСтроки и КвалификаторыЧисла, можно вытащить длину строки или формат числа для примитивных типов.
19. RustIG 1747 02.10.11 17:09 Сейчас в теме
(0) вообще мне такой инструмент не хватал при написании алгоритмов проведения документов по регистрам... теперь я думаю вопрос только во времени, когда я это реализую (или кто-нибудь другой :))
и еще, что-то подобное я использовал, когда алгоритмы 7.7 переводил в алгоритмы 8.1 и наоборот. написал для этих целей конвертор строк кода. думаю эту тему можно будет развить в текущем функционале. опять-таки вопрос времени
20. CaSH_2004 373 02.10.11 19:12 Сейчас в теме
Из предложений:
- возможноость выбирать таб части
- обрабатывать не только док. и спр. но и все регистры с их особенностями
ИМХО конечно, но если рассуждать логически правильнее было бы добавить свой функционал в разработку http://infostart.ru/public/61601, она действительно будет пофункциональнее, а плодить кучу разработок как-то неправльно. Ведь каждая получается в чем-то уникальная, хотя и одной тематики. Вот и приходится всем один и тот же вилосипед изобретать, разного цвета, вместо того чтобы взять его и перекрасить :)
22. RustIG 1747 02.10.11 23:06 Сейчас в теме
(20) кто-нибудь может выложить ссылки на все обработки, которые он использует в своей практике? :) тогда махом закроются все вопросы по поводу изобретения велосипеда. ведь цель текущей публикации - это обмен опытом в части рабочих инструментов программиста-разработчика. :)
я попробую:
http://infostart.ru/public/19821/ - структура таблиц в базе
http://infostart.ru/public/22147/ - декомпиляция и анализ форм с генерацией кода формы
http://infostart.ru/public/89310/ - шаблоны с возможностью поиска и отбора по ключевым словам
http://infostart.ru/public/15782/ - конструктор параметров командной строки

:) так что, друзья-разработчики, пишите еще

П.С. Посмотрел - сравнил - и ответственно заявляю :) , что текущая разработка отличается от того, что предлагает обработка http://infostart.ru/public/61601/
23. CaSH_2004 373 03.10.11 00:30 Сейчас в теме
(22) Да было бы неплохо выложить все, да вот только к сожалению бесполезно это, т.к. рейтинг обновляется и статья через 1-2 месяца не будет висеть. Тут нужен инструмент на сайте чтобы видны были такие обработки. Хотя можно пользоваться фильтрами.

Да http://infostart.ru/public/61601/ отличается, но не так значительно как перечисленные тобой обработки, там те же конструкторы и то же формирование кода, поэтому логичнее включить данную разработку в ее функционал, например как продолжение проекта

В копилку обработок для программистов 8-ков я бы добавил:
http://infostart.ru/public/15317/ - Power Explorer, один из первых комбайнов, я до сих пор в основном им пользуюсь
http://infostart.ru/public/15324 - Интерфейсная панель
http://infostart.ru/public/69707/ - Универсальный журнал документов, до сих пор развивается!
http://infostart.ru/public/16332/ - WindowsПроводник 1.3, просто отличный пример что может 1С без компонент, не пользуюсь, но любуюсь :) можно брать как пример и не городить заново аналоги
21. RustIG 1747 02.10.11 22:34 Сейчас в теме
(0) для болванки создания документов надо добавить обязательный к заполнению реквизит "Дата" документа.
:)
24. Yashazz 4790 03.10.11 11:17 Сейчас в теме
Бесполезная вещь, как все слишком универсальные конструкторы. Трудозатраты на доработку напильником "по месту" приблизительно равны тем, какие были бы в случае создания "с нуля". Элементарный копипаст - наше всё.
25. milkers 2918 03.10.11 12:19 Сейчас в теме
Какой функционал Вы хотели бы добавить в следующих версиях? Я вижу несколько направлений:
1) Генерация кода для различных операций с таблицами. (Создание, поиск, удаление и т.д.)
2) Генерация вызовов отчетов расшифровок с заданными отборами, группировками и другими настройками.
И добро пожаловать в соответствующую ветку форума: Какой функционал Вы хотели бы добавить в следующих версиях?
43. e.kogan 1895 07.02.12 11:03 Сейчас в теме
(25) Возможность вместо Неопределено для всех монотипных реквизитов подставлять пустое значение типа. Ссылочные - ПустойСсылкой(), простые - соответственно типу.
26. itar59 87 03.10.11 13:13 Сейчас в теме
milkers пишет:

Какой функционал Вы хотели бы добавить в следующих версиях? Я вижу несколько направлений:

1) Генерация кода для различных операций с таблицами. (Создание, поиск, удаление и т.д.)

2) Генерация вызовов отчетов расшифровок с заданными отборами, группировками и другими настройками.

И добро пожаловать в соответствующую ветку форума: Какой функционал Вы хотели бы добавить в следующих версиях?



Совершенно согласен!!!
27. CrazyHands 37 03.10.11 14:06 Сейчас в теме
Спасибо огромное за грамотную, нужную и полезную вещь!!!
28. andrybar 405 03.10.11 15:58 Сейчас в теме
Полезная штучка. сэкономит немало времени. А время, как говорится, деньги, тем более для кодеров.
29. vint2008 03.10.11 17:37 Сейчас в теме
Полезная штука пригодилась неоднократно :)
30. g1s3s6 04.10.11 08:35 Сейчас в теме
31. YAN 1374 04.10.11 11:16 Сейчас в теме
32. Qseft 05.10.11 15:57 Сейчас в теме
Собрать бы все конструкторы (Ваш, конструктор ТаблицыЗначений и т.д.) в единый инструмент, было бы удобно.
47. vec435 17 27.06.12 12:02 Сейчас в теме
(32) Qseft, было бы удобно создать некий шаблон, в котором подключаешь обработку тз от одного автора, генератор кода от другого. Не понравился от этого, подключил от другого. Но для этого нужно согласовать шаблон подключения, я думаю
33. milkers 2918 05.10.11 16:00 Сейчас в теме
(0)(32) Я планирую добавить конструктор ТЗ в собственной редакции в ближайшее время.
34. milkers 2918 08.10.11 21:28 Сейчас в теме
(0) 2011-10-08 Было немножко свободного времени - сделал генерацию кода цветной.
35. dimanich70 870 13.10.11 19:26 Сейчас в теме
Коль уж создается новый документ, добавить в конце "Записать и т.д." через Попытка и т.д.
36. Noy12 19.10.11 13:32 Сейчас в теме
очень полезно. спасибо
37. mtv:) 1028 21.10.11 20:42 Сейчас в теме
(0) Наконец-то генерация кода стала цветной. Теперь можно скачать и попробовать.
Спасибо.
Хотя, может стоит дождаться "Конструктор ТЗ в собственной редакции"? :)
38. napan 36 24.10.11 19:57 Сейчас в теме
Хорошая и очень полезная вещь. Спасибо автору.Мне точно пригодиться!!!
39. testy05 26.10.11 15:41 Сейчас в теме
40. opiumdx 31.10.11 07:27 Сейчас в теме
41. itsimpossible 13.11.11 18:39 Сейчас в теме
Интересная весч, попробуем
42. orefkov 1152 08.12.11 11:34 Сейчас в теме
Портирование под Снегопат начато, вот первая проба
cool.vlad4; +1 Ответить
44. CaSH_2004 373 07.03.12 15:25 Сейчас в теме
Несмотря на Снегопат решил развить идею, и не только я:
http://infostart.ru/public/119748/ - жто моедополнение, но и оно написано на чужое дополнение к данной обработке:
http://infostart.ru/public/92872/
45. fixin 4273 29.03.12 22:39 Сейчас в теме
Изучать всё долго. Вброшу - а кто-нибудь догадался написать код, где выбираешь нужные существующие элементы справочника или докумнта, а он генерит код по их созданию????
53. AlexO 135 17.10.13 01:29 Сейчас в теме
(45) fixin,
а кто-нибудь догадался написать код, где выбираешь нужные существующие элементы справочника или докумнта, а он генерит код по их созданию????

Так а развитие идеи от CaSH_2004 от ( 45) не это делает?
(47) vec435,
было бы удобно создать некий шаблон, в котором подключаешь обработку тз от одного автора, генератор кода от другого.
Чьи обработки вы хотели бы так подключать?
(50) romann,
А то всё время приходится ручками.. или, в лучшем случае, копипастить откуда-нибудь.
Вы только новые объекты в конфе все время создаете? :)
46. пользователь 09.06.12 12:40
Сообщение было скрыто модератором.
...
48. maxx 996 01.08.12 12:49 Сейчас в теме
Приятная штука.

Хорошо еще бы добавить шаблоны:

1.) Для документов событие "Обработка проведения" заполнение регистров сопоставляя имена, типа как делает сейчас конструктор, для событие ОбработкаЗаполнения - как бы если один документ заполнялся другим (даже если ввода на основании в конфигураторе не указан документ)

2.) Для регистров прописывание набор записей во все регистры независимо программно

3.) Шаблон для справочников для прописывания значения в регистры сведений независимые, если Справочник участвует в Измерение как Ведущее
49. milkers 2918 01.08.12 13:03 Сейчас в теме
(48) Хорошие мысли. Надо добавить. Только со временем совсем напряг.
50. romann 11.09.12 17:07 Сейчас в теме
Полезная вещь. А то всё время приходится ручками.. или, в лучшем случае, копипастить откуда-нибудь.
Спасибо!
54. пользователь 13.11.13 10:56
Сообщение было скрыто модератором.
...
51. eugen91 06.12.12 15:41 Сейчас в теме
Спасибо! Хороша обработка. Воспользовался вашим механизмом!
52. It-developer 26 05.09.13 14:56 Сейчас в теме
55. yura1960 15.06.14 11:01 Сейчас в теме
Что-то подобное уже есть, но с более расширенным функционалом, где указывается объект, а потом проставляешь галочки, что тебе нужно и ... И там же можно связывать объекты.
Кажется я это здесь видел. К сожалению ссылки нет (((
56. milkers 2918 15.02.17 16:25 Сейчас в теме
(0) Обновление от 15.02.2017

Добавил поддержку управляемых форм
57. milkers 2918 28.07.20 15:01 Сейчас в теме
(0) Обновление от 28.07.2020
Добавил реквизит Объект данных
Если реквизит Объект данных заполнен, то создается болванка для программного заполнения копии выбранного объекта, данными выбранного объекта.
58. cprit 901 14.09.20 10:48 Сейчас в теме
(0)Добрый день!
Прошу разрешения на включение вашего инструмента в свободно распространяемый набор "Универсальные инструменты 1С" https://github.com/cpr1c/tools_ui_1c.

Поддержку и дальнейшее развитие готовы взять на себя.

Буду благодарен за любой ответ
59. milkers 2918 14.09.20 16:48 Сейчас в теме
60. milkers 2918 02.10.24 22:38 Сейчас в теме
[0] -Вышла версия от 2024.02.10
В этой версии добавлены:

- Быстрое открытие документа или справочника по гиперссылке (только управляемые формы).

- Для конфигураций на БСП появилась возможность зарегистрировать обработку в дополнительных обработках что дает возможность получить код создания элемента

или справочника одним нажатием кнопки из любого открытого объекта.

-Для справочников добавляется строка вида:

СсылкаОбъект = Справочники.Должности.ПолучитьСсылку(Новый УникальныйИдентификатор("8183748b-cd62-11e4-869d-0050568b35ac"));
Оставьте свое сообщение