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

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

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

Торговля 7.7

0
В данной статье хотел поделиться опытом, как в Торговле 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";
	КонецЕсли;
	
	Итоги.ДобавитьЗначение(ИтогСумма, "ИтогСумма");
	Итоги.ДобавитьЗначение(Итог("СуммаНДС")	, "ИтогСуммаНДС");
	Итоги.ДобавитьЗначение(Итог("Сумма")		, "ИтогВсегоСНДС");
	Итоги.ДобавитьЗначение(Итог("СуммаНП")	, "ИтогСуммаНП");

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

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

.

0

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

Избранное Подписка Сортировка: Древо
В этой теме еще нет сообщений.
Оставьте свое сообщение

См. также

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

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

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

1 стартмани

06.10.2017    13932    17    AndKovalchuk    12       

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

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

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

10.03.2016    48330    Serginio    33       

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

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

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

09.03.2016    25357    Serginio    22       

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

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

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

27.01.2016    62738    Serginio    104       

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

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

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

16.01.2015    70783    shmellevich    35       

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

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

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

08.08.2012    11096    mikukrnet    7       

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

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

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

06.05.2012    11102    2sw    4       

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

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

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

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

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

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

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

28.04.2012    15853    Valerich    31       

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

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

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

24.04.2012    7233    leo072    7       

v77. Робот 43

Инструменты и обработки no Внешняя обработка (ert,epf) v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

Исполнитель Робот. Учебное пособие по программированию для детей дошкольного возраста. Без внешних компонент.

09.04.2012    10181    54    item    18       

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

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

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

20.03.2012    39478    Yury1001    17       

v77. Закладки в многоуровневом справочнике аля Total Commander 28

Инструменты и обработки Программист Конфигурация (md, cf) v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

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

09.03.2012    8797    44    item    17       

v77. Паинт 53

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Россия Бесплатно (free) Практика программирования

v77. 1С:Паинт :) Такая вот игрушка. Без внешних компонент.

06.03.2012    11886    81    item    38       

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

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

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

27.02.2012    9092    avers007    16       

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

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

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

10.02.2012    4586    filh    19       

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

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

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

12.01.2012    13182    ShEvOvIcH    18       

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

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

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

15.11.2011    13143    leshik    21       

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

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

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

04.11.2011    13363    twilight5023    8       

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

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

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

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

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

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

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

18.06.2011    11701    Shaman100M    8       

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

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

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

14.06.2011    19394    vkr    48       

Особенности сортировки в 1С:Предприятие 7.7 22

Инструменты и обработки Программист Внешняя обработка (ert,epf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Windows Бесплатно (free) Практика программирования

Подобная "разработка" использовалась для анализа/сравнения порядка индексов таблиц БД в различных СУБД: "родные" DBF, MS SQL, CodeBase 6.5, Advantage 7.x/8.x/9.x. Тогда было выяснено, что в этих СУБД разный порядок сортировки индекса.

29.05.2011    15227    68    hogik    4       

Учет переплаты за прошлый период (персонифицированный учет в ПФР) 9

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

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

06.05.2011    3794    pavel_vrn    8       

Конвертация прериодических реквизитов справочников 6

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

Активно работаю с конфигурацией "Конвертация" версии 2.0, но возникают ситуации, когда необходимо написать правила обмена между базами данных 1С:Предприятие. Когда и источник и приемник имеют версию 7.7. И камень преткновения - выгрузка периодических реквизитов справочников.

29.04.2011    12925    lvictor58    2       

Форма 1-НДФЛ для 2011 года (Зарплата и Кадры 7.7, релиз 310) 29

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

В прежних релизах была возможность из справочника "Сотрудники" сформировать форму 1-НДФЛ по кнопке "Ввод данных" (там была возможность расшифровки сумм). Вернём полезную функцию!

29.04.2011    4377    Q-Q    9       

Некоторые ошибки и «проблемные» особенности реализации встроенного языка платформы 1С:Предприятие 7.7 96

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

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

08.04.2011    42011    AleksR    102       

Вариант реализации динамического табло в 1С 7.7 12

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

Позволяет отображать на экране (монитора или большого телевизора) результат работы требуемого отчета при изменении определенных данных без необходимости интерактивного участия пользователя

14.03.2011    7145    1с2с    19       

Отпуск по уходу за ребенком. Расчет по-новому и по-старому 32

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

По новому законодательству расчет среднего заработка для отпуска по уходу можно производить как по старым правилам, так и по новым, на усмотрение сотрудника. Реализуем это в ЗиК.

11.03.2011    10178    Nicholas    9       

Ошибки формата файла 2-НДФЛ в ЗиК релиз 306 100

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

Ошибки 2НДФЛ в релизе: файл формируется как для ЮЛ, даже если работодатель ИП, опечатка "Отчетсвто", и указание имени файла с расширением. Нужно подправить отчет "СправкиПоНДФЛ".

02.02.2011    17103    1st    6       

ЗиК 305 ЗиК 306 Больничный лист. 107

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

Для переходящих больничных листов за счет работодателя оплачивается 2 дня, а не 3. Первоисточник: http://forums.kuban.ru/forum/viewtopi...669&page=2

25.01.2011    12200    Cvetic    26       

Тюнинг Бух 7.7.: Микрографики в ТЧ документа. 49

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

Как вставить в документ что-то вроде диаграммы распределения сумм…

25.01.2011    18174    Арчибальд    18       

Программное изменение текста в надписях Word 27

Статья Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Печатные формы документов Практика программирования

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

06.12.2010    15339    АннаШ    10       

Подбор свободного кода справочника "Номенклатура" без захвата одного и того же кода несколькими операторами. 1

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

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

05.11.2010    8489    Rusk51    10       

Быстрый подсчет элементов справочника 17

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

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

18.10.2010    21247    brr    11       

[ОБУЧАЛОВКА] Прямые запросы: практические примеры разработки 29

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

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

30.09.2010    116514    CheBurator    37       

ЗиК.300 Загогулина 59

Инструменты и обработки Программист Конфигурация (md, cf) v77::Расчет 1С7:ЗиК Россия Зарплата ФОМС, ПФ, ФСС Бесплатно (free) Практика программирования

В конфигурации ЗиК.300 при использовании при расчетах любого единовременного пособия из соцстраха (рождение, погребение…) - возможна ошибка в своде проводок...

24.08.2010    12959    UV2    14       

Изменяем вид кнопок на форме 1С 7.7 25

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

Изменяем вид кнопок на форме 1С 7.7. Статья для разработчиков ВК (Delphi) Реализовано в http://infostart.ru/public/59436/?PAGEN_1=22#comm

20.08.2010    20715    Abadonna    12       

Максимум изменений в стандартной конфигурации при их минимуме с использованием formex.dll 34

Статья Программист Нет файла v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Бесплатно (free) Практика программирования Разработка внешних компонент

Восстанавливаю ранее опубликованную статью. Может кому пригодится... Иногда очень хочется что-нибудь добавить в стандартную конфигурацию, но потом возникают проблемы, связанные с "затиранием" кода при обновлении. Каждый раз помнить где и что - напряжно. При данном подходе в Глобальный Модуль добавляется всего одна (!) строчка

15.08.2010    16446    Abadonna    33       

Ускоритель СЗВ 2010 для ЗиК 2.99 30

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

Ускоряет формирование СЗВ примерно вполовину за счет уменьшения числа запросов. Реально полезно, когда надо часто и много заходить в редактирование форм СЗВ. ЗиК 2.99

20.07.2010    7993    aves    7       

ЗиК 298 Ошибка в исчислении стажа. Отчетность ПФР СЗВ-6. 34

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

Проблемы у сотрудников, имеющих Больничные листы, у которых либо Начало болезни = конец месяца либо Окончание болезни = начало месяца. В первом случае в СЗВ-6 началом болезни считается начало следующего месяца, во втором окончание болезни - конец месяца.

13.07.2010    11062    Cvetic    19       

Организация быстрого подбора 3

Инструменты и обработки Программист Внешняя обработка (ert,epf) openconf v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free) Практика программирования

Организация быстрого подбора, что бы отфильтрованные позиции справочника "вылетали" по нажатии символов, причём не важно, в каком позиции начинается слово в названии элемента.

15.06.2010    6116    118    DeAmon2K    13