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