1С бухгалтерия

Делал перенос данных из Бухгалтерии 7.7 в Бухгалтерию 3.0. И достался мне не типовой план счетов. В частности к счету 23 было добавлено дополнительное субконто "Объекты строительства". А требовалось перенести документы за период и соответственно данный счет встречался в разных документах, в том числе в Операции введенной вручную.
Пришлось вносить корректировка в конфигурации Конвертация данных. Есть там алгоритм, который называется ПриВыгрузкеСубконто, который вызывается и при выгрузке документов и при выгрузке Бухгалтерской операции. Поэтому было решено править именно этот алгоритм.
В самом конце алгоритма добавил следующий код:

// ХА
Если Счет = СчетПоКоду("23") Тогда
	Если ТипЗначенияСтр(Значение) = "ТаблицаЗначений" Тогда
		Если Значение.НомерСтроки = 1 Тогда 
			ВидСубконто = ВидыСубконто.ВидыНоменклатуры;
			Субконто = Параметры.ХА_НоменклатурнаяГруппаПоУмолчанию;
			ИмяПКО = "НоменклатурныеГруппы";
		ИначеЕсли Значение.НомерСтроки = 2 Тогда 
			ИмяПКО = "СтатьиЗатратНаПроизводство";
		ИначеЕсли Значение.НомерСтроки = 3 Тогда
			ВидСубконто = ВидыСубконто.ОбъектыСтроительства;
			Субконто = Параметры.ПараметрыАлгоритмов.Получить("Субконто1");
			ИмяПКО = "ОбъектыСтроительства_08_3";
		КонецЕсли;
	Иначе
		Если ТипЗначения(Субконто) = 0 Тогда
			Субконто = Параметры.ПараметрыАлгоритмов.Получить("Субконто1");
			Значение = Субконто;
			ИмяПКО = "ОбъектыСтроительства_08_3";
		ИначеЕсли ТипЗначения(Субконто) = 11 Тогда 
			Если Субконто.Вид() = "СтатьиЗатратНаПроизводство" Тогда
				ИмяПКО = "СтатьиЗатратНаПроизводство";
			ИначеЕсли Субконто.Вид() = "ОбъектыСтроительства" Тогда
				ИмяПКО = "НоменклатурныеГруппы";
				Субконто = Параметры.ХА_НоменклатурнаяГруппаПоУмолчанию;
				Значение = Субконто;
			ИначеЕсли Субконто.Вид() = "Подразделения" Тогда
				Субконто = Параметры.ПараметрыАлгоритмов.Получить("Субконто1");
				Значение = Субконто;
				ИмяПКО = "ОбъектыСтроительства_08_3";
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;
КонецЕсли;
// 		ХА
 
НомерПКОСубконто = НайтиПравило(Субконто, ИмяПКО);
 
Если НомерПКОСубконто = 0 Тогда
	Отказ = 1;
КонецЕсли;

Обычно при переопределении значения мы заменяем переменную Значение. И если в модуле этого алгоритма присвоить этой переменной нужное нам значение, то для всех или почти всех документов это прокатит. А вот для документа ОперацияБух произойдет ошибка, т.к. в качестве значения передается таблица значений, в которой указывается номер строки(номер субконто), тип субконто и само значение субконто. Поэтому для случая, когда передается таблица значений я переопределял не переменную Значение, а переменные ВидСубконто и Субконто.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <1c7>, <drupal5>, <drupal6>, <javascript>, <php>. Beside the tag style "<foo>" it is also possible to use "[foo]".