Как в торговле 7.7 печатать код ТНВЭД в счет-фактуре

Публикация № 699995

Разработка - Практика программирования

Торговля 7.7

В данной статье хотел поделиться опытом, как в Торговле 7.7 ( релиз 994) сделать возможность выводить код ТНВЭД в печатную форму счета-фактуры. Сразу скажу, что нужно это только тем, кто осуществляет экспорт в страны таможенного союза. Остальные могут не волноваться.

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

Пару слов, почему это важно. Многие могут пойти по легкому пути и просто добивать код ТНВЭД в печатную форму счета-фактуры. Но новая книга продаж теперь тоже содержит реквизит код ТНВЭД

 
 В КНИГУ ДОБАВИЛИ ДВЕ НОВЫЕ ГРАФЫ

 

В КНИГУ ДОБАВИЛИ ДВЕ НОВЫЕ ГРАФЫ

Книга продаж с 1 октября 2017 года дополнена двумя новыми графами:

  • графа «3а» – «Регистрационный номер таможенной декларации». Она нужна резидентам особой экономической зоны Калининградской области, чтобы указывать в новой графе номер таможенной декларации, оформленной при выпуске товаров;
  • графа «3б» – «Код вида товара». Эта графа для организаций, которые экспортируют товары в страны ЕАЭС. Коды нужно заполнять в соответствии с единой Товарной номенклатурой внешнеэкономической деятельности Евразийского экономического союза.

Вместе с этим стоит сказать, что даже если эти графы вам не нужны (вы никак не связаны с особой экономической зоной и ввозите товары в ЕАЭС), то с 1 октября 2017 года, все равно, нужно формировать книгу продаж на новом бланке.

 

Начнем с того, где будем хранить код ТНВЭД, который выкладываем. Как и в типовой бухгалтерии Код ТНВЭД будет хранить в реквизите справочника Номенклатура. 

Начнем со справочника Классификатор ТНВЭД

Реквизиты ПолнНаименование (строка 150),ДатаНачалаПозиции (Дата),ДатаОкончанияПозиции (Дата) не являются обязательными, но удобны для загрузки классификатора с помощью обработки //infostart.ru/public/683277/

В справочнике "Номенклатура" добавим реквизит "ТНВЭД"


 

Ну и теперь пора переходить к редактированию документа "Счет-фактура выданный". Все дело в том, что в счет-фактуре выданном нет доступа к отгруженной номенклатуре. Он теряется в момент ввода счет-фактуры на основании реализация. Объясню подробнее. В табличной части счета-фактуры выданного нет реквизита Номенклатура, а вместо него есть строковый реквизит наименование. Именно содержимое этого реквизита выводится в колонку 1 (Наименование товара) счета-фактуры. 

как можно уже увидеть на картинки. Выход из положения следующий. Добавить реквизит КОДТНВЭД (строка 10).

И процедуре печати строки

	Если Постановление981 = 1 Тогда
		ТоварКодТНВЭД = "---";
	КонецЕсли;

 

вставить строки

Если Постановление981 = 1 Тогда
	ТоварКодТНВЭД = МнЧ.КодТНВЭД;
КонецЕсли;

 остается только прописать заполнение кода ТНВЭД

для этого нужно поменять процедуры 

 Процедура СоздатьСтруктуру(МнЧ)
	
	МнЧ = СоздатьОбъект("ТаблицаЗначений");
	МнЧ.НоваяКолонка("Цена",);
	МнЧ.НоваяКолонка("Сумма",);
	МнЧ.НоваяКолонка("СтавкаНДС");
	МнЧ.НоваяКолонка("СуммаНДС",);
	МнЧ.НоваяКолонка("СуммаНП",);
	МнЧ.НоваяКолонка("ВсегоСНДС",);
	МнЧ.НоваяКолонка("Номенклатура");
	МнЧ.НоваяКолонка("СтранаН");
	МнЧ.НоваяКолонка("СтранаК");
	МнЧ.НоваяКолонка("НомерГТД");
	МнЧ.НоваяКолонка("Единица"); 
	МнЧ.НоваяКолонка("ЕдиницаКод");
	МнЧ.НоваяКолонка("Количество");
	МнЧ.НоваяКолонка("АкцизЦена"); 
//добавим нашу колонку
	МнЧ.НоваяКолонка("КодТНВЭД");
	
КонецПроцедуры // СоздатьСтруктуру()
//******************************************************************************
// ПодготовитьТаблицуДокумента(ИсхТабл)
//
// Параметры:
//  Табл - подготовленная таблица
//
// Возвращаемое значение:
//  "пустую строку" - если таблица подготовлена, или строку с описанием ошибки.
//
// Описание:
//  формирует таблицу значений из табличной части документа основания
//
Функция ПодготовитьМнЧосн(МнЧ, Итоги, ФорматКоличества, РегистрУчета)
	
	Перем ТаблицаГТД;
	Перем РегПартии;
	
	ТаблицаГТД = СоздатьОбъект("ТаблицаЗначений");
	ТаблицаГТД.НоваяКолонка("Номенклатура");
	ТаблицаГТД.НоваяКолонка("СтранаПроисхождения");
	ТаблицаГТД.НоваяКолонка("ГТД");
	ТаблицаГТД.НоваяКолонка("Количество");  //в базовых единицах
	
	КолвоГТДТов = СоздатьОбъект("СписокЗначений");
	
	// Переберем все партии, которые были списаны документом - основанием. 
	// Если в партии были выбраны страна и ГТД, их следует перенести в СФ
	РегПартии = СоздатьОбъект("Регистр." + РегистрУчета);		
	РегПартии.ВыбратьДвиженияДокумента(ДокОснование);
	
	Пока РегПартии.ПолучитьДвижение() = 1 Цикл
		
		Если (РегПартии.Расход = 1) 
		и    (РегПартии.Партия.Выбран()=1)
		Тогда
			ВремСтрана 	= РегПартии.Партия.СтранаПроисхождения;
			ВремГТД		= РегПартии.Партия.ГТД;
			
			Если (ПустоеЗначение(ВремСтрана) = 0)
			 или (ПустоеЗначение(ВремГТД   ) = 0)
			Тогда
				ТаблицаГТД.НоваяСтрока();
				ТаблицаГТД.Номенклатура        = РегПартии.Номенклатура;
				ТаблицаГТД.СтранаПроисхождения = ВремСтрана;
				ТаблицаГТД.ГТД                 = ВремГТД;
				ТаблицаГТД.Количество          = РегПартии.Количество;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	СоздатьСтруктуру(МнЧ);
	
	// создадим таблицу документа
	ТаблицаОснования = СоздатьОбъект("ТаблицаЗначений");
	ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаОснования);
	
	// теперь у нас есть таблица, в которой собраны строки документа - основания в нужной валюте
	// надо проставить ГТД
	
	ВидОсн = ДокОснование.Вид();
	
	Если ВидОсн = "ВводОстатковПокупателя" Тогда
		ТаблицаОснования.НоваяКолонка("Сумма");
		ТаблицаОснования.НоваяКолонка("Номенклатура");
	Иначе
		Если глЕстьРеквизитМнЧ("СуммаНП", ВидОсн) = 0 Тогда
			ТаблицаОснования.НоваяКолонка("СуммаНП");
			ОснСуммаВклНП = 0;
		Иначе
			ОснСуммаВклНП = ДокОснование.СуммаВклНП;
		КонецЕсли;
			
		Если глЕстьРеквизитМнЧ("СуммаНДС", ВидОсн) = 0 Тогда
			ТаблицаОснования.НоваяКолонка("СуммаНДС");
			ОснСуммаВклНДС = 0;
		Иначе
			ОснСуммаВклНДС = ДокОснование.СуммаВклНДС;
		КонецЕсли;
	КонецЕсли;
	
	Если глЕстьРеквизитШапки("КодОперации", ВидОсн) = 1 Тогда
		БратьСуммыИзУчета = глБратьСуммыИзУчета(ДатаДок, ДокОснование.КодОперации);
	Иначе
		БратьСуммыИзУчета = глБратьСуммыИзУчета(ДатаДок);
	КонецЕсли;
	
	Если БратьСуммыИзУчета = 1 Тогда
		СкорректироватьТаблицуОснования(ТаблицаОснования, ВидОсн);
	КонецЕсли;
	
	
	ИтогСумма    = 0;
	ВывелиСтроку = 0;
	
	РаспредГТД = СоздатьОбъект("ТаблицаЗначений");
	РаспредГТД.НоваяКолонка("Колво", "Число", 14, 3);
	РаспредГТД.НоваяКолонка("Страна");
	РаспредГТД.НоваяКолонка("Номер");
	
	ТаблицаОснования . ВыбратьСтроки();
	Пока ТаблицаОснования.ПолучитьСтроку()=1 Цикл
		
		Если ВидОсн = "ВводОстатковПокупателя" Тогда
			ТаблицаОснования.Сумма = ТаблицаОснования.СуммаРуб - ТаблицаОснования.СуммаНДС - ТаблицаОснования.СуммаНП;
		Иначе
			Если ОснСуммаВклНП = 1 Тогда
				ТаблицаОснования.Сумма = ТаблицаОснования.Сумма - ТаблицаОснования.СуммаНП;
			КонецЕсли;
			
			Если ОснСуммаВклНДС = 1 Тогда
				ТаблицаОснования.Сумма = ТаблицаОснования.Сумма - ТаблицаОснования.СуммаНДС;
			КонецЕсли;
		
		КонецЕсли;
		
		МнЧ.НоваяСтрока();
		
		МнЧ.СтранаН      = " ----- ";
		МнЧ.НомерГТД     = " ----- ";
		МнЧ.АкцизЦена    = " -- ";
		
		
		Если ПустоеЗначение(ТаблицаОснования.Сумма) = 1 Тогда
			МнЧ.Сумма		= " ----- ";
			МнЧ.СтавкаНДС	= " Без НДС ";
			МнЧ.СуммаНДС	= " -- ";
			МнЧ.СуммаНП		= " -- ";
			МнЧ.ВсегоСНДС	= " ----- ";
		Иначе
			МнЧ.Сумма        = глФРМ(ТаблицаОснования.Сумма);
			МнЧ.СтавкаНДС	= ?(ТаблицаОснования.СтавкаНДС = Перечисление.СтавкиНДС.безНДС, " Без НДС ", Строка(ТаблицаОснования.СтавкаНДС));
			МнЧ.СуммаНДС	= ?(ТаблицаОснования.СтавкаНДС = Перечисление.СтавкиНДС.безНДС, " -- ", глФРМ(ТаблицаОснования.СуммаНДС));
			МнЧ.СуммаНП      = глФРМ(ТаблицаОснования.СуммаНП);  
			МнЧ.ВсегоСНДС    = глФРМ(ТаблицаОснования.Сумма + ТаблицаОснования.СуммаНДС);
		КонецЕсли;
		
		Если ВидОсн = "РеализацияПрочее" Тогда
		    МнЧ.Номенклатура = ТаблицаОснования.Содержание;
			ВсегоКол         = 0;
			МнЧ.Количество   = ТаблицаОснования.Количество;
			ТекЕдиница       = "";
			
			МнЧ.Цена         = глФРМ(?(ТаблицаОснования.Количество = 0, 0, ТаблицаОснования.Сумма/ТаблицаОснования.Количество));
		ИначеЕсли ВидОсн = "ВводОстатковПокупателя" Тогда
			МнЧ.Номенклатура = ТаблицаОснования.ВидДолга;
			МнЧ.Количество   = 0;
			ТекЕдиница       = "";
			
			МнЧ.Цена         = "";
		Иначе
			МнЧ.Номенклатура = ТаблицаОснования.Номенклатура.ПолнНаименование + ?(Константа.ПоказыватьАртикул = 1, " " + СокрЛП(ТаблицаОснования.Номенклатура.Артикул), "");        
			//вытащим наш код ТНВЭД из реализации
			МнЧ.КодТНВЭД     = ТаблицаОснования.Номенклатура.ТНВЭД;
			МнЧ.Количество   = ТаблицаОснования.Количество;
			ТекЕдиница       = ТаблицаОснования.Единица;
			ВсегоКол 	     = ТаблицаОснования.Количество;

			МнЧ.Цена         = глФРМ(?(ТаблицаОснования.Количество = 0, 0, ТаблицаОснования.Сумма/ТаблицаОснования.Количество));
		КонецЕсли;
		
		МнЧ.Единица      = ТекЕдиница;
		
		Если (МнЧ.Количество - Цел(МнЧ.Количество)) > 0 Тогда
		    ФорматКоличества = "Ч14.3";
		КонецЕсли;
		
		Если СФНаАванс = 1 Тогда
   			МнЧ.Цена		= " ----- ";
			МнЧ.Сумма		= " ----- ";
			МнЧ.Количество  = " ----- ";
			МнЧ.Единица     = " ----- ";   
			ФорматКоличества= "С7";
			Продолжить;
		КонецЕсли; 
		
		РаспредГТД.УдалитьСтроки();
		
		НомСтр		= 0;
		ОстКолво	= ВсегоКол;
		
		Если (ВидОсн <> "РеализацияПрочее")
		   и (ВидОсн <> "ВводОстатковПокупателя")
		Тогда
			
			ТекКоэфф	= ТаблицаОснования.Коэффициент;
			ОстКолво	= ОстКолво * ТекКоэфф;

			Пока (ОстКолво > 0) 
			и    (ТаблицаГТД.НайтиЗначение(ТаблицаОснования.Номенклатура, НомСтр, "Номенклатура") <> 0)
			Цикл
				
				ТаблицаГТД.ПолучитьСтрокуПоНомеру(НомСтр);
				
				СписКолво	= Мин(ОстКолво, ТаблицаГТД.Количество);
				
				РаспредГТД.НоваяСтрока();
				РаспредГТД.Колво  = ?(ТекКоэфф = 0, СписКолво, СписКолво / ТекКоэфф);
				РаспредГТД.Номер  = ТаблицаГТД.ГТД;
				РаспредГТД.Страна = ТаблицаГТД.СтранаПроисхождения;
				
				ТаблицаГТД.Количество = ТаблицаГТД.Количество - СписКолво;
				Если ТаблицаГТД.Количество <= 0 Тогда
					// если по ГТД все списали, то удаляем строку
					ТаблицаГТД.УдалитьСтроку();
				КонецЕсли;
				
				ОстКолво = ОстКолво - СписКолво;
				НомСтр   = 0;
			КонецЦикла;
			
			Если (ОстКолво > 0)
			   и (ОстКолво < (ВсегоКол * ТекКоэфф))
			Тогда
				// только часть товара распределилась по ГТД
				РаспредГТД.НоваяСтрока();
				РаспредГТД.Колво  = ?(ТекКоэфф <> 0, ОстКолво / ТекКоэфф, ОстКолво);
				РаспредГТД.Номер  = " ----- ";
				РаспредГТД.Страна = " ----- ";
			КонецЕсли;
			
			РаспредГТД.Свернуть("Номер, Страна", "Колво");
			
			Если РаспредГТД.КоличествоСтрок() = 1 Тогда
				
				РаспредГТД.ПолучитьСтрокуПоНомеру(1);
				МнЧ.НомерГТД = РаспредГТД.Номер;
				МнЧ.СтранаН  = РаспредГТД.Страна;
			Иначе
				
				РаспредГТД.ВыбратьСтроки();
				Пока РаспредГТД.ПолучитьСтроку() = 1 Цикл
					
					МнЧ.НоваяСтрока();
					МнЧ.Номенклатура = "     в т.ч.";
					МнЧ.Цена		 = " ----- ";
					МнЧ.Сумма		 = " ----- ";
					МнЧ.СтавкаНДС	 = " -- ";
					МнЧ.СуммаНДС	 = " -- ";
					МнЧ.СуммаНП		 = " -- ";
					МнЧ.ВсегоСНДС	 = " ----- ";
					
					МнЧ.Единица     = ТекЕдиница;
					МнЧ.Количество  = РаспредГТД.Колво;
					МнЧ.НомерГТД    = РаспредГТД.Номер;
					МнЧ.СтранаН     = РаспредГТД.Страна;
					
					Если (МнЧ.Количество - Цел(МнЧ.Количество)) > 0 Тогда
					    ФорматКоличества = "Ч14.3";
					КонецЕсли;
					
				КонецЦикла;
			КонецЕсли;
			
		КонецЕсли;
		
	КонецЦикла;// по строкам таблицы основания
	
	Если ПустоеЗначение(ФорматКоличества) = 1 Тогда
	    ФорматКоличества	= "Ч010.0";
	КонецЕсли;  
	
	Итоги = СоздатьОбъект("СписокЗначений");
		
	Если ТаблицаОснования.КоличествоСтрок() > 0 Тогда
	    Итоги.ДобавитьЗначение(ТаблицаОснования.Итог("Сумма") + ТаблицаОснования.Итог("СуммаНДС"),    "ИтогВсегоСНДС");
	//	Итоги.ДобавитьЗначение(ТаблицаОснования.Итог("Сумма")	, "ИтогСумма");
		Итоги.ДобавитьЗначение(ТаблицаОснования.Итог("СуммаНДС"), "ИтогСуммаНДС");
		Итоги.ДобавитьЗначение(ТаблицаОснования.Итог("СуммаНП")	, "ИтогСуммаНП");
	Иначе
	    Итоги.ДобавитьЗначение(0, "ИтогВсегоСНДС");
	//	Итоги.ДобавитьЗначение(0, "ИтогСумма");
		Итоги.ДобавитьЗначение(0, "ИтогСуммаНДС");
		Итоги.ДобавитьЗначение(0, "ИтогСуммаНП");
	КонецЕсли;	
	
  	Возврат "";
КонецФункции // ПодготовитьМнЧосн()

 

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

		ИначеЕсли ВидОсн = "ВводОстатковПокупателя" Тогда
			МнЧ.Номенклатура = ТаблицаОснования.ВидДолга;
			МнЧ.Количество   = 0;
			ТекЕдиница       = "-";
			ТекЕдиницаКод    = "-";
			МнЧ.Цена         = 0;
		Иначе
			МнЧ.Номенклатура = ТаблицаОснования.Номенклатура.ПолнНаименование + ?(Константа.ПоказыватьАртикул = 1, " " + ТаблицаОснования.Номенклатура.Артикул, ""); 
			МнЧ.КодТНВЭД     = ТаблицаОснования.Номенклатура.ТНВЭД;
			МнЧ.Количество   = ТаблицаОснования.Количество;
			ТекЕдиница       = ТаблицаОснования.Единица;
			ТекЕдиницаКод    = ТаблицаОснования.Единица.ОКЕИ.Код;
			ВсегоКол 	     = ТаблицаОснования.Количество;

			Если (ДокОснование.УчитыватьНДС = 1)
			   и (ДокОснование.СуммаВклНДС  = 0) Тогда
				МнЧ.Цена = ТаблицаОснования.Цена; 	
			Иначе
				МнЧ.Цена = ?(ТаблицаОснования.Количество = 0, 0, ТаблицаОснования.Сумма/ТаблицаОснования.Количество);
			КонецЕсли;
			
			Если ТипЗначенияСтр(ТаблицаОснования.Номенклатура) = "Справочник" Тогда
				Если ТаблицаОснования.Номенклатура.Вид() = "Номенклатура" Тогда
					Если (ТаблицаОснования.Номенклатура.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Услуга)
					или (ТаблицаОснования.Номенклатура.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Работа) Тогда
						МнЧ.ЕдиницаКод = "-"; 
						МнЧ.Единица = "-";
						МнЧ.СтранаК = "-"; 
						МнЧ.СтранаН = "-";
						МнЧ.НомерГТД = "-";
						ТекЕдиница       = "-";
						ТекЕдиницаКод    = "-";
					КонецЕсли;
				КонецЕсли;	
			КонецЕсли;

		КонецЕсли;
		
		МнЧ.Единица      = ТекЕдиница;
		МнЧ.ЕдиницаКод   = ТекЕдиницаКод;
		МнЧ.ВсегоСНДС    = ТаблицаОснования.Сумма + ТаблицаОснования.СуммаНДС;
		
		Если (МнЧ.Количество - Цел(МнЧ.Количество)) > 0 Тогда
		    ФорматКоличества = "Ч10.3";
		КонецЕсли;
		
		НомСтр 	 = 0;
		ОстКолво = ВсегоКол;
		РаспредГТД.УдалитьСтроки();
		
		Если (ВидОсн <> "РеализацияПрочее")
		и (ВидОсн <> "ВводОстатковПокупателя")
		Тогда
			
			Пока (ОстКолво > 0) 
			и    (ТаблицаГТД.НайтиЗначение(ТаблицаОснования.Номенклатура, НомСтр, "Номенклатура") <> 0)
			Цикл
				
				ТаблицаГТД.ПолучитьСтрокуПоНомеру(НомСтр);
				
				РаспредГТД.НоваяСтрока();
				РаспредГТД.Колво  = Мин(ОстКолво, ?(ТаблицаОснования.Коэффициент <> 0, ТаблицаГТД.Количество / ТаблицаОснования.Коэффициент, ТаблицаГТД.Количество));
				
				РаспредГТД.Номер  = ТаблицаГТД.ГТД;
				РаспредГТД.Страна = ТаблицаГТД.СтранаПроисхождения;
				
				ТаблицаГТД.Количество = ТаблицаГТД.Количество - РаспредГТД.Колво * ?(ТаблицаОснования.Коэффициент = 0, 1, ТаблицаОснования.Коэффициент);
				Если ТаблицаГТД.Количество <= 0 Тогда
					// если по ГТД все списали, то удаляем строку
					ТаблицаГТД.УдалитьСтроку();
				КонецЕсли;
				
				ОстКолво = ОстКолво - РаспредГТД.Колво;
				НомСтр   = 0;
			КонецЦикла;
			
			ТекТМЦ = ТаблицаОснования.Номенклатура;
			
			Если (ОстКолво > 0)
			и (ОстКолво < ВсегоКол)
			Тогда
				// только часть товара распределилась по ГТД
				РаспредГТД.НоваяСтрока();
				РаспредГТД.Колво  = ОстКолво;
				РаспредГТД.Номер  = "";
				РаспредГТД.Страна = "";
				// Заполним номер ГТД и Страну из Номенклатуры, если там есть...
				Если ПустоеЗначение(ТекТМЦ.НомерГТД) = 0 Тогда
					РаспредГТД.Номер = СокрЛП(ТекТМЦ.НомерГТД);   
				КонецЕсли;
				
				Если ПустоеЗначение(ТекТМЦ.СтранаПроисхождения) = 0 Тогда
					РаспредГТД.Страна = ТекТМЦ.СтранаПроисхождения;   
				КонецЕсли;
				
			КонецЕсли; 
			
			Если ТипЗначенияСтр(ТаблицаОснования.Номенклатура) = "Справочник" Тогда
				Если ТаблицаОснования.Номенклатура.Вид() = "Номенклатура" Тогда
					Если (ТаблицаОснования.Номенклатура.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Услуга)
					или (ТаблицаОснования.Номенклатура.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Работа) Тогда
						МнЧ.СтранаК = "-"; 
						МнЧ.СтранаН = "-";
						МнЧ.НомерГТД = "-"; 
					КонецЕсли;
				КонецЕсли;
			КонецЕсли;
			
			РаспредГТД.Свернуть("Страна, Номер", "Колво");
			
			КолСтрокГТД = РаспредГТД.КоличествоСтрок();
			
			Если КолСтрокГТД = 0 Тогда
				// нет распределения по ГТД
				// Заполним номер ГТД и Страну из Номенклатуры, если там есть...
				Если ПустоеЗначение(ТекТМЦ.НомерГТД) = 0 Тогда
					МнЧ.НомерГТД = СокрЛП(ТекТМЦ.НомерГТД);   
				КонецЕсли;
				
				Если ПустоеЗначение(ТекТМЦ.СтранаПроисхождения) = 0 Тогда
					МнЧ.СтранаН = СокрЛП(ТекТМЦ.СтранаПроисхождения);
					Если ТипЗначенияСтр(ТекТМЦ.СтранаПроисхождения) = "Справочник" Тогда
						МнЧ.СтранаК = СокрЛП(ТекТМЦ.СтранаПроисхождения.Код);
					Иначе
						МнЧ.СтранаК = "";	
					КонецЕсли;
				КонецЕсли;	
			ИначеЕсли КолСтрокГТД = 1 Тогда
				РаспредГТД.ВыбратьСтроки();
				РаспредГТД.ПолучитьСтроку();
				// одна строка в таблице. Товара с номером ГТД и страной в одной строке
				МнЧ.НомерГТД    = РаспредГТД.Номер;
				МнЧ.СтранаН     = СокрЛП(РаспредГТД.Страна); 
				Если ТипЗначенияСтр(РаспредГТД.Страна) = "Справочник" Тогда
					МнЧ.СтранаК = РаспредГТД.Страна.Код;
				Иначе
					МнЧ.СтранаК = "";
				КонецЕсли;	
				
			Иначе
				
				РаспредГТД.ВыбратьСтроки();
				Пока РаспредГТД.ПолучитьСтроку() = 1 Цикл
					
					ТекСумма	  = МнЧ.Сумма;
					ТекСуммаНДС	  = МнЧ.СуммаНДС;
					ТекВсегоСНДС  = МнЧ.ВсегоСНДС;
					ТекКоличество = МнЧ.Количество;
					
					Если ТекКоличество > 0 Тогда 
						ТекКоэф = РаспредГТД.Колво/ТекКоличество;
					Иначе
						ТекКоэф = 1;
					КонецЕсли;
					
					Если НЕ(РаспредГТД.НомерСтроки = 1) Тогда
				
						Если МнЧ.КоличествоСтрок() = 0 Тогда
							МнЧ.НоваяСтрока();
							МнЧ.Номенклатура = МнЧ.ПолучитьЗначение(1,"Номенклатура");
							МнЧ.Цена		 = МнЧ.ПолучитьЗначение(1,"Цена");
							МнЧ.СтавкаНДС	 = МнЧ.ПолучитьЗначение(1,"СтавкаНДС");
							МнЧ.Единица      = МнЧ.ПолучитьЗначение(1,"Единица");
							МнЧ.ЕдиницаКод   = МнЧ.ПолучитьЗначение(1,"ЕдиницаКод");
							МнЧ.АкцизЦена    = МнЧ.ПолучитьЗначение(1,"АкцизЦена");
						Иначе
							МнЧ.НоваяСтрока();
							МнЧ.Номенклатура = МнЧ.ПолучитьЗначение(МнЧ.КоличествоСтрок()-1,"Номенклатура");
							МнЧ.Цена		 = МнЧ.ПолучитьЗначение(МнЧ.КоличествоСтрок()-1,"Цена");
							МнЧ.СтавкаНДС	 = МнЧ.ПолучитьЗначение(МнЧ.КоличествоСтрок()-1,"СтавкаНДС");
							МнЧ.Единица      = МнЧ.ПолучитьЗначение(МнЧ.КоличествоСтрок()-1,"Единица");
							МнЧ.ЕдиницаКод   = МнЧ.ПолучитьЗначение(МнЧ.КоличествоСтрок()-1,"ЕдиницаКод");
							МнЧ.АкцизЦена    = МнЧ.ПолучитьЗначение(МнЧ.КоличествоСтрок()-1,"АкцизЦена");
						КонецЕсли;		        			
					КонецЕсли;  
					
					МнЧ.Сумма		 = ТекСумма * ТекКоэф;
					МнЧ.СуммаНДС	 = ТекСуммаНДС * ТекКоэф;
					МнЧ.СуммаНП		 = КороткийПрочерк;
					МнЧ.ВсегоСНДС	 = ТекВсегоСНДС * ТекКоэф;
					МнЧ.Количество  = РаспредГТД.Колво;
				
				    МнЧ.НомерГТД    = РаспредГТД.Номер;
					МнЧ.СтранаН     = РаспредГТД.Страна;
					
					Если ТипЗначенияСтр(РаспредГТД.Страна) = "Справочник" Тогда
						МнЧ.СтранаК     = РаспредГТД.Страна.Код;
					Иначе
						МнЧ.СтранаК = "";	
					КонецЕсли;
										
					Если (МнЧ.Количество - Цел(МнЧ.Количество)) > 0 Тогда
					    ФорматКоличества = "Ч14.3";
					КонецЕсли;
									
				КонецЦикла;
			КонецЕсли;
		КонецЕсли;
		
		Если ПустаяСтрока(МнЧ.СтранаК) = 1 Тогда
		   	МнЧ.СтранаК = "-";
		КонецЕсли;
		   
		Если ПустаяСтрока(МнЧ.СтранаН) = 1 Тогда
		   	МнЧ.СтранаН = "-";
		КонецЕсли;   
		   
		Если ПустаяСтрока(МнЧ.НомерГТД) = 1 Тогда
		   	МнЧ.НомерГТД = "-";
		КонецЕсли; 
	
	КонецЦикла;// по строкам таблицы основания
		
	Если ПустоеЗначение(ФорматКоличества) = 1 Тогда
	    ФорматКоличества	= "Ч010.0";
	КонецЕсли;
	
	Итоги = СоздатьОбъект("СписокЗначений");
	
	Если ТаблицаОснования.КоличествоСтрок() > 0 Тогда
	    Итоги.ДобавитьЗначение(ТаблицаОснования.Итог("Сумма") + ТаблицаОснования.Итог("СуммаНДС"),    "ИтогВсегоСНДС");
		Итоги.ДобавитьЗначение(ТаблицаОснования.Итог("Сумма")	, "ИтогСумма");
		Итоги.ДобавитьЗначение(ТаблицаОснования.Итог("СуммаНДС"), "ИтогСуммаНДС");
		Итоги.ДобавитьЗначение(ТаблицаОснования.Итог("СуммаНП")	, "ИтогСуммаНП");
	Иначе
	    Итоги.ДобавитьЗначение(0, "ИтогВсегоСНДС");
		Итоги.ДобавитьЗначение(0, "ИтогСумма");
		Итоги.ДобавитьЗначение(0, "ИтогСуммаНДС");
		Итоги.ДобавитьЗначение(0, "ИтогСуммаНП");
	КонецЕсли;	
	
	
	Возврат "";
КонецФункции // ПодготовитьМнЧосн()
Функция ПодготовитьМнЧ1137(МнЧ, Итоги, ФорматКоличества)
	
	Если (СФНаАванс = 1) И (СчетНаОплату.Выбран() = 1) Тогда
	    Возврат ПодготовитьМнЧПоСчетуНаОплату1137(МнЧ, Итоги, ФорматКоличества); 
	КонецЕсли;
	
	Итоги = СоздатьОбъект("СписокЗначений");
	СоздатьСтруктуру(МнЧ);
	
	ИтогСумма       = 0;
	КороткийПрочерк = "-";
	
	ВыбратьСтроки();
	Пока ПолучитьСтроку() = 1 Цикл
		
		МнЧ.НоваяСтрока();
		
		ВывелиСтроку     = 1;
		МнЧ.Номенклатура = СокрП(Наименование); 
		МнЧ.КодТНВЭД= КодТНВЭД;
		МнЧ.
		МнЧ.Единица      = Единица; 
		Если ПустоеЗначение(МнЧ.Единица) = 0 Тогда
			Если МнЧ.Единица.Вид() = "Единицы" Тогда
				МнЧ.ЕдиницаКод   = Единица.ОКЕИ.Код;
			ИначеЕсли МнЧ.Единица.Вид() = "ОКЕИ" Тогда
				МнЧ.ЕдиницаКод   = Единица.Код;
			Иначе
			Конецесли;	
		Иначе
			МнЧ.ЕдиницаКод = КороткийПрочерк;
			МнЧ.Единица = КороткийПрочерк;
		КонецЕсли; 
		
		Если (МнЧ.Количество = 0) или (СФНаАванс = 1) Тогда
			МнЧ.Количество = 0;
		Иначе
			МнЧ.Количество = Количество;
		Конецесли;	
		МнЧ.АкцизЦена    = "без акциза";
		
		Если (СФНаАванс = 1) Тогда
			
			МнЧ.Цена	  = 0;
			МнЧ.Сумма	  = 0;
			МнЧ.АкцизЦена = КороткийПрочерк;
			МнЧ.СтавкаНДС = ?(СтавкаНДС = Перечисление.СтавкиНДС.безНДС, "без НДС", Строка(СтавкаНДС));
			МнЧ.СуммаНДС  = ?(СтавкаНДС = Перечисление.СтавкиНДС.безНДС, КороткийПрочерк, глФРМ(СуммаНДС,,,""));
			МнЧ.ВсегоСНДС = Сумма;                                                 
			МнЧ.СтранаН	  = КороткийПрочерк;
			МнЧ.СтранаК   = КороткийПрочерк;
			МнЧ.НомерГТД  = КороткийПрочерк;
			
			
		Иначе
					
			Если ПустоеЗначение(Сумма) = 1 Тогда
				МнЧ.Цена		= 0;
				МнЧ.Сумма		= КороткийПрочерк;
				МнЧ.СтавкаНДС	= "без НДС";
				МнЧ.СуммаНДС	= КороткийПрочерк;
				МнЧ.СуммаНП		= КороткийПрочерк;
				МнЧ.ВсегоСНДС	= КороткийПрочерк;
			Иначе
				МнЧ.Сумма		= Сумма - СуммаНДС;
				ИтогСумма		= ИтогСумма + Сумма - СуммаНДС;
				МнЧ.Цена		= ?(Количество = 0, 0, Цена - СуммаНДС / Количество);
				МнЧ.СтавкаНДС	= ?(СтавкаНДС = Перечисление.СтавкиНДС.безНДС, "Без НДС", Строка(СтавкаНДС));
				МнЧ.СуммаНДС	= ?(СтавкаНДС = Перечисление.СтавкиНДС.безНДС, КороткийПрочерк, глФРМ(СуммаНДС,,,""));
				МнЧ.ВсегоСНДС	= Сумма;                                                 
			КонецЕсли;
			
			Если ПустоеЗначение(СтранаПроисхождения)=1 Тогда
				МнЧ.СтранаН		= "-";
				МнЧ.СтранаК     = "-";
				//Если не указал страну, и указал Номер ГТД, то зачем-то это было нужно
				Если ПустаяСтрока(ГТД) = 1 Тогда        
					МнЧ.НомерГТД	= "-";
				Иначе
					МнЧ.НомерГТД	= ГТД;
				КонецЕсли;
			Иначе
				МнЧ.СтранаН	= СтранаПроисхождения;
				МнЧ.СтранаК	= СтранаПроисхождения.Код;
				// Если номер пустой, и указана страна, то позволяем потом вписать номер ГТД 
				// в напечатанном документе руками
				МнЧ.НомерГТД	= ГТД;
			КонецЕсли;
			
		КонецЕсли; 
		
		Если ТипЗначенияСтр(Наименование) = "Справочник" Тогда
			Если Наименование.Вид() = "Номенклатура" Тогда
				Если (Наименование.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Услуга)
				или (Наименование.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Работа) Тогда
					МнЧ.ЕдиницаКод = "-"; 
					МнЧ.Единица = "-";
					МнЧ.СтранаК = "-"; 
					МнЧ.СтранаН = "-";
					МнЧ.НомерГТД = "-"; 
				КонецЕсли;	
			КонецЕсли;
		КонецЕсли;
		
		Если Количество - Цел(Количество) > 0 Тогда
			ФорматКоличества	= "Ч10.3";
		КонецЕсли; 
				
	КонецЦикла;
	
	Если ПустоеЗначение(ФорматКоличества) = 1 Тогда
	    ФорматКоличества	= "Ч10.0";
	КонецЕсли;
	
	Итоги.ДобавитьЗначение(ИтогСумма, "ИтогСумма");
	Итоги.ДобавитьЗначение(Итог("СуммаНДС")	, "ИтогСуммаНДС");
	Итоги.ДобавитьЗначение(Итог("Сумма")		, "ИтогВсегоСНДС");
	Итоги.ДобавитьЗначение(Итог("СуммаНП")	, "ИтогСуммаНП");

	Возврат "";
	
КонецФункции // ПодготовитьМнЧ()

Ну вот собственно и все. Но есть еще форма  УПД, УКД и коррректировочного счета-фактуры

.

Специальные предложения

Оставьте свое сообщение

См. также

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    77199    Serginio    110    

Маркировка лекарств - как передать код маркировки при продаже через ККТ Штрих-М

Практика программирования ККМ v7.7 Здравоохранение, медицина, стоматология Фармацевтика, аптеки Россия Бесплатно (free)

Пример программного кода для вывода чеков на ККМ Штрих-М с передачей информации о маркированных товарах (лекарства).

10.02.2020    8770    vovaapril    27    

Загрузка классификатора ТНВЭД

Обработка справочников Внешнеэкономическая деятельность (ВЭД) Классификаторы Внешнеэкономическая деятельность (ВЭД) v77::БУ 1С7:Бух Россия БУ НДС Абонемент ($m)

В связи с постановлением правительства РФ 981 от августа 2017 года теперь в счете фактуре есть колонка КОД ТНВЭД. Обработка загружает Классификатор кодов ТН ВЭД, который можно скачать с сайта http://www.formy-i-blanki.ru/tnved тестировалась на релизе 7.70.638 1С:Бухгалтерия 7.7

1 стартмани

06.10.2017    18465    21    AndKovalchuk    14    

Проверка часового пояса

Практика программирования v7.7 Бесплатно (free)

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

16.05.2016    11082    kudenzov    3    

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Промо

Практика программирования WEB v7.7 v8 Бесплатно (free)

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    56145    Serginio    33    

[ПОЛЕЗНЯШКА, 7.7] Как посчитать итоги по документам черным запросом с изподвывертом?

Практика программирования v7.7 1cv7.md Бесплатно (free)

Мелкая полезняшка, считает запросом итоговую сумму документов и количество документов.

12.03.2016    19199    CheBurator    18    

.Net в 1С. Асинхронные HTTP запросы, отправка Post нескольких файлов multipart/form-data, сжатие трафика с использованием gzip, deflate, удобный парсинг сайтов и т.д.

Разработка внешних компонент Практика программирования WEB v7.7 v8 Бесплатно (free)

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

09.03.2016    31956    Serginio    22    

Пример HTTP запроса к УТМ ЕГАИС на платформе 1С 7.7

Внешние источники данных Практика программирования Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v7.7 1cv7.md Россия Бесплатно (free)

Запрос реализован на объекте ServerXMLHTTP из встроенной в Windows библиотеки MSXML, результатом запроса является XML объект DOMDocument из той же библиотеки MSXML со встроенным интерфейсом его обработки

16.12.2015    25504    Palmer1976    3    

1С:Предприятие 7.7. Оптимизация. Промо

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

Разгоняем 1С:Предприятие 7.7. Выжимаем последние соки.

31.01.2009    47071    alexk-is    110    

Экспорт нескольких MXL таблиц в один XLS файл, на отдельные листы. Простой алгоритм

Загрузка и выгрузка в Excel Практика программирования v7.7 v8 Бесплатно (free)

Статья посвящена распространённому вопросу - как сохранить несколько таблиц (отчетов) в формате MXL, с которым работает 1С, на отдельные листы одного Excel файла. Освещается простой алгоритм решения проблемы штатными средствами, без использования внешних модулей и библиотек (не относящихся к 1С и Excel).

23.11.2015    17492    etmarket    14    

Процедура расшифровки ячейки таблицы в отчетах 1С 7.7

Практика программирования Универсальные функции v7.7 1cv7.md Бесплатно (free)

Хочу поделиться с вами универсальной процедурой для расшифровки ячеек печатной формы отчетов в 1С 7.7.

24.09.2015    17805    Anzhey    14    

Универсальный способ сравнения таблиц

Практика программирования v7.7 v8 Бесплатно (free)

На эту тему уже есть статьи, но этот способ нигде не описан. Хотя я его использую с тех пор, как занимаюсь программированием. Его преимущество в простоте и универсальности: можно применять на 1С, SQL, а также в любом другом языке программирования.

05.07.2015    19213    json    1    

Как уменьшить количество заблокированных объектов Промо

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

История о том как я решил пересобрать форму справочника клиентов и чем это все закончилось...

12.01.2012    15612    ShEvOvIcH    18    

Числа прописью в родительном падеже в 7.7? Легко!

Практика программирования v7.7 1cv7.md Бесплатно (free)

Вывод числительных прописью в родительном падеже штатными средствами в три строчки кода.

20.06.2015    12819    gimalaj    3    

Хитрости сохранения табличного документа в Excel для дальнейшей работы с ним

Загрузка и выгрузка в Excel Практика программирования v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Все пользователи 1С всех версий (начиная с 7-й) сталкиваются с проблемой нормальной работы с данными, сохраненными в Excel файл. Есть некоторые хитрости, которые позволяют облегчить работу с сохраненными данными из 1С в формат Excel.

16.01.2015    91463    shmellevich    38    

Технология обновления нетиповых конфигураций 1С:Предприятия 7.7 Промо

Практика программирования Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

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

12.12.2008    63012    alexk-is    25    

ЗаполнитьЗначенияСвойств - заставляем работать в 7.7

Практика программирования v7.7 1cv7.md Бесплатно (free)

Если вы используете в работе 1С:Предприятие 8.х, то наверняка знакомы и с замечательной системной процедурой, как ЗаполнитьЗначенияСвойств(). Ее использование помогает значительно упростить написание программного кода в ряде случае, делает его (код) более наглядным и простым. Но что же делать тем, кто до сих пор использует (постоянно или иногда) 1С:Предприятие 7.7?

24.07.2014    22183    tomvlad    5    

Чтение строк файла CSV в список значений с помощью метода ИзСтрокиСРазделителями

Практика программирования Внешние источники данных v7.7 Бесплатно (free)

Чтение строк файла CSV в список значений с помощью метода ИзСтрокиСРазделителями

04.04.2013    19521    ivisor_fil    11    

Конвертация данных 2.1 (2.1.3.1) 1С 7.7 - 1С 8.Х передача параметра ПКО

Практика программирования Перенос данных из 1С7.7 в 1C8.X v7.7 v8 КД Бесплатно (free)

Передача параметров по умолчанию доступна только для баз 1С 8.х -1С 8.х. Показан пример, как передать параметры из 1С 7.7 - 1С 8.х

10.12.2012    25512    serg_gres    6    

Скрытие помеченных на удаление в справочнике

Практика программирования v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

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

08.08.2012    13917    mikukrnet    7    

Динамическая фильтрация в справочнике при вводе наименования

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

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

02.07.2012    16428    maxpiter    62    

Продажа собственной фирме (интеркомпани) - заполнение отрицательными остатками

Практика программирования Учет ТМЦ Учет ТМЦ v77::ОУ 1С7:Комплекс 1С7:ТиС Россия Бесплатно (free)

В документе "Продажа собственной фирме" приходится добавлять номенклатуру вручную через подбор. А ведь можно сэкономить время и заполнить спецификацию документа на основании отрицательных остатков фирмы. Все просто...

06.05.2012    13425    2sw    4    

Ввод остатков по 76.ВА в 1С ПУБ

Практика программирования v77::ОУ v77::БУ 1С7:ПУБ Россия БУ Бесплатно (free)

Статья посвящена найденному мной недостатку в конфигурации 1С 7.7 "Производство-услуги-бухгалтерия", связанному с вводом начальных остатков по 76.ВА.

29.04.2012    10062    Пользователь 1С    0    

Обновление базы 1с 7.7. с помощью движка 1с 8.х

Практика программирования Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

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

28.04.2012    18689    Valerich    31    

Ошибка при формировании отчета Авансы по налогу на имущество. В 1С:Предприятие 7.7. Регламентированная отчетность за I квартал 2012 года Обновление 12q1009 от 18.04.2012 г.

Практика программирования v77::ОУ v77::БУ 1cv7.md Россия Бесплатно (free)

При формировании отчета NIMAVP1.ERT Авансы по налогу на имущество (версия 5.03) в разделе № 1-3 не сохраняет номера Страниц при выборе, что ведет к не сохранению и выводу печати двухмерного кода.

24.04.2012    9386    leo072    7    

Запуск внешней обработки по расписанию v7.7

Практика программирования Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

Неоднократно возникали задачи организовать, например ежедневную выгрузку и отправку отчетов по эл.почте, и вот…

20.03.2012    44438    Yury1001    17    

Быстрый отбор в журнале на конкретную дату

Практика программирования v77::ОУ 1cv7.md Россия Бесплатно (free)

Лень - двигатель прогресса. Полезная фича для быстрого отбора документов в любом журнале на конкретную дату.

27.02.2012    11287    avers007    16    

ЗиК 321, в отчетах пропадает проводка по ПФР_страховая

Практика программирования v77::ОУ v77::Расчет 1С7:ЗиК Россия ФОМС, ПФ, ФСС Бесплатно (free)

При формировании отчета "Свод проводок" с галкой "Учет начисления налогов с ФОТ, включаемых в состав расходов" в отчет не выходит ПФР_страх

10.02.2012    6893    filh    19    

Ошибка в 1С:Бух77 ред.533 Начисление ФФОМС при ЕНВД

Практика программирования Зарплата Зарплата v77::БУ 1С7:Бух Россия Бесплатно (free)

При начислении налогов с ФОТ (док.ЗакрытиеМесяца) не расчитываются налоги ФФОМС, если начисление зарплаты проводится как "облагаемые ЕНВД".

22.01.2012    10306    lelbraun    3    

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

Практика программирования Разработка внешних компонент v77::ОУ 1С7:Комплекс 1С7:ТиС Россия Бесплатно (free)

Первая статья из цикла статей "Прямые запросы:...". Рассказывается о применении класса ПрямойЗапрос и компоненты 1С++ для ускорения функции глВернутьЦену() в типовой конфигурации Торговля и склад. Платформа 7.7.

15.11.2011    15661    leshik    21    

1С:Торговля и Склад - ошибка во всех релизах, При использовании нескольких фирм и префиксов номеров документов.

Практика программирования v77::ОУ 1С7:ТиС Россия Бесплатно (free)

Собственно сегодня обнаружил ошибку, которая присутствует во всех релизах конфигурации Торговля и Склад 7.7 вплоть до текущего 7.70.969, при использовании нескольких фирм и префиксов документов для некоторых из них.

04.11.2011    15664    twilight5023    8    

Функция проверки валидности e-mail с использованием регулярных выражений RegExp (7.7)

Практика программирования openconf v77::БУ 1cv7.md Россия Бесплатно (free)

Функция проверки валидности e-mail с использованием регулярных выражений RegExp (7.7). Данную функцию можно вставить в Глобальный модуль и пользоваться, например, при вводе или сохранении e-mail.

30.10.2011    11124    zaursoft    11    

ЗиК: Заполнение данных о заработке у предыдущих работодателей в больничном

Практика программирования Зарплата Зарплата v77::Расчет 1С7:ЗиК Россия БУ Бесплатно (free)

Доработка ЗиК 314. Заполнение данных в больничном за 2 предыдущих года у другого работодателя. Для работы необходимо добавить в конфигурацию новый справочник.

04.10.2011    11926    allexe    13    

Компенсация отпуска, оплата дней доноров и оплата льготных дней родителей в ЗиК

Практика программирования Зарплата Зарплата v77::Расчет 1cv7.md 1С7:ЗиК Россия Бесплатно (free)

"Компенсация отпуска"," Оплата дней доноров" и "Оплата льготных дней родителей" - эти виды расчетов должны облагаться страховыми взносами с 01.01.2011 года.

04.10.2011    9296    maxim305    18    

7.7.: Готовим md-файл для публикации. В картинках.

Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

Вы доработали типовую конфигурацию: скажем, добавили новый Документ, и хотите им поделиться с обществом ИС. Но нельзя же выложить МД-шник целиком, это будет нарушением правил. И как тут быть?

14.09.2011    17459    Арчибальд    21    

Расшифровка внутренних расчетов 1С:Зарплата

Практика программирования Зарплата Зарплата v77::Расчет 1С7:ЗиК Россия Бесплатно (free)

Трассировка (расшифровка) промежуточных расчетов документов в 1С:Зарплата

20.07.2011    10815    buhinfo    5    

Дата запрета редактирования

Практика программирования v77::БУ 1cv7.md Россия Бесплатно (free)

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

15.07.2011    10760    natalika1601    14    

Кнопка обновления версии внешнего отчета

Практика программирования v77::ОУ v77::БУ v77::Расчет Россия Бесплатно (free)

После исправления внешнего отчета вместо рекомендации пользователю: "Закрой отчет и открой его заново", говорим: "Нажми на кнопку".

18.06.2011    13887    Shaman100M    8    

Методика расчета резервов отпусков (счет 96) в 1С Зарплата и Кадры 7.7 с 2011 года (вариант)

Практика программирования Зарплата Зарплата v77::Расчет 1С7:Бух 1С7:ЗиК Россия БУ Бесплатно (free)

В статье рассмотрен один из возможных вариантов расчета резервов отпусков (счет 96) в 1С Зарплата и Кадры 7.7 с 2011 года.

14.06.2011    22100    vkr    48