INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Белозеров Дмитрий | Системный архитектор | LMSoft

«Кодогенерация и метагенерация в 1С»

Примерно год назад жизнь заставила меня задуматься над таким вопросом - а не разработать ли язык (точнее псевдоязык), с помощью которого можно было бы программно работать с метаданными 1С, писать скрипты, которые выполняют те же действия, которые выполняет разработчик в конфигураторе... В этом докладе хочу рассказать о том как мы разрабатывали такой инструмент, с какими сложностями и нюансами столкнулись, и что получилось в итоге. Мы рассмотрим реальные кейсы использования автоматической генерации метаданных 1С, в которых использование такого подхода дает серьёзные преимущества и сильно облегчает жизнь разработчика (иногда настолько облегчает что можно обойтись вообще без него :), увидим как инструмент генерации можно вписать в общий контур continuous integration. А ещё обсудим перспективы использования подобных практик (генерация конфигурации на основе формализованных функциональных моделей, реализация библиотечного подхода к разработке прикладных решений).

Счета-фактура (СФ) и универсальный передаточный документ (УПД) (в редакции от 19.08.2017 № 981) для конфигурации ТиС 7.7 и КК 7.7

Печать - Печатные формы документов

8
Внешняя печатная форма счета-фактуры (СФ) и универсального передаточного документа (УПД), (в редакции Постановления Правительства РФ от 19.08.2017 № 981) с тремя периодами - до 01.07.2017, с 01.07.2017 по 01.10.2017 и с 01.10.2017 для конфигурации ТиС 7.7 и Комплексная конфигурация 7.7

Счета-фактура (СФ) и универсальный передаточный документ (УПД), (в редакции Постановления Правительства РФ от 19.08.2017 № 981) для конфигурации ТиС 7.7 и Комплексная конфигурация 7.7

УПД подключается к документу "Реализация", а СФ - "Счет-фактура выданный"
- для конфигурации ТиС 7.7 через "Сервис"-"Регистрация внешних печатных форм"
- для комплексной конфигурации 7.7 через "Прочие настройки"-"Подключение внешних печатных форм".

Код открыт, протестирован на конфигурации ТиС версии 7.70.984 и Комплексная конфигурация версии 7.70.543.

8

Скачать файлы

Наименование Файл Версия Размер
СФ_2017_2_ТиС_КК
.ert 64,50Kb
18.05.18
20
.ert 64,50Kb 20 Скачать
УПД_2017_2_ТиС_КК
.ert 234,00Kb
18.05.18
167
.ert 234,00Kb 167 Скачать

См. также

Комментарии
Сортировка: Древо
1. @Sonya 24 04.06.15 12:03 Сейчас в теме
Спасибо за разработку. Одно замечание - когда номер берется из накладной, а не из СФ, надо и статус документа ставить "2".
2. _Vovik 38 06.07.15 11:57 Сейчас в теме
Добрый день. Спасибо пользуюсь.
Хочу показать вам ошибочку. Если распределяется по партиям вторая строка документа - то косяк.
Вот это я исправил:
МнЧ.Номенклатура = МнЧ.ПолучитьЗначение(1,"Номенклатура");  
						МнЧ.ТоварКод	 = МнЧ.ПолучитьЗначение(1,"ТоварКод");
						МнЧ.Цена		 = МнЧ.ПолучитьЗначение(1,"Цена");
						МнЧ.СтавкаНДС	 = МнЧ.ПолучитьЗначение(1,"СтавкаНДС");
						МнЧ.Единица      = МнЧ.ПолучитьЗначение(1,"Единица");
						МнЧ.ЕдиницаКод   = МнЧ.ПолучитьЗначение(1,"ЕдиницаКод");
						МнЧ.АкцизЦена    = МнЧ.ПолучитьЗначение(1,"АкцизЦена");	

Так:
Перед циклом:
НомерОсновнойСтроки = 0;

Потом так:
Если РаспредГТД.НомерСтроки = 1 Тогда
						НомерОсновнойСтроки = МнЧ.НомерСтроки;
					Иначе
										
						МнЧ.НоваяСтрока();
						МнЧ.Номенклатура = МнЧ.ПолучитьЗначение(НомерОсновнойСтроки,"Номенклатура");  
						МнЧ.ТоварКод	 = МнЧ.ПолучитьЗначение(НомерОсновнойСтроки,"ТоварКод");
						МнЧ.Цена		 = МнЧ.ПолучитьЗначение(НомерОсновнойСтроки,"Цена");
						МнЧ.СтавкаНДС	 = МнЧ.ПолучитьЗначение(НомерОсновнойСтроки,"СтавкаНДС");
						МнЧ.Единица      = МнЧ.ПолучитьЗначение(НомерОсновнойСтроки,"Единица");
						МнЧ.ЕдиницаКод   = МнЧ.ПолучитьЗначение(НомерОсновнойСтроки,"ЕдиницаКод");
						МнЧ.АкцизЦена    = МнЧ.ПолучитьЗначение(НомерОсновнойСтроки,"АкцизЦена");				        			
					КонецЕсли; 
Показать
3. xxart 08.12.16 18:53 Сейчас в теме
Легло на 941 релиз почти без доработки. Пришлось изменить строки начиная с 414 так:

//Если глЕстьРеквизитШапки("КодОперации", ВидОсн) = 1 Тогда
	//	БратьСуммыИзУчета = глБратьСуммыИзУчета(Докум.ДатаДок, Докум.КодОперации);
	//Иначе
	//	БратьСуммыИзУчета = глБратьСуммыИзУчета(Докум.ДатаДок);
	//КонецЕсли;
	
    БратьСуммыИзУчета = 0;


В остальном все ОК
4. ntint 01.07.17 07:53 Сейчас в теме
Добрый день. Изменена в соответствии с 2017 годом?
5. Spektr 522 01.07.17 13:21 Сейчас в теме
(4) Да, в редакции постановления Правительства Российской Федерации от 25 мая 2017 г. № 625
6. user783570 21.07.17 14:54 Сейчас в теме
Добрый день. Подскажите как в УПД сделать, что бы печатались ФИО лица в строчках 10, 13 и как сделать автоматическое выведение адресов Грузоотправителя и его адрес и Грузополучателя и его адрес?? Релиз 974
7. shoco 27.07.17 08:22 Сейчас в теме
Если Докум.Фирма.ЮрЛицо.ИндивидуальныйПредприниматель = 1 Тогда
{EXTFORMS\PRNFORMS\СФ_2017_ТИС.ERT(128)}: Поле агрегатного объекта не обнаружено (ИндивидуальныйПредприниматель)
выдает такую ошибку что можно сделать?
8. shoco 27.07.17 08:50 Сейчас в теме
подскажите выдает ошибку УПД_625_ТИС.ERT(415)}: Функция не обнаружена (глБратьСуммыИзУчета)
9. _Vovik 38 27.07.17 11:42 Сейчас в теме
Думаю дело в том что вы давно не обновляли ТИС. П,С, я не автор.
10. user783570 28.07.17 14:41 Сейчас в теме
Так же эта форма не прописывает наименование и код валюты (релиз 974 ТиС) ((( Короче надо её автору доработать!!!
Оставьте свое сообщение