среда, 4 февраля 2009 г.

Выгрузка из ЗиК v8 в Бухгалтерию v7.7

В нашу компанию была успешно внедрена зарплата и кадры 1Сv8. После отработанного месяца, конечно же нужно было выгрузить зарплату в бухгалтерию которая пока что еще на версии 7.7, все обработки связанные с обменом данных были в обеих системах.
Выгрузка прошла без проблем. А вот на этапе загрузки возникли проблемы.

В процессе загрузки возникла ошибка:"нет возможности удалить строку". Полез в конфигуратор. Найдя нужную обработку я несколько был обескуражен количеством строк: свыше 5000!!!

Потекли часы отладки и поиска места ошибки. В конце-концов нашел:

   Если ПустоеЗначение(НеУдалятьСтроки) = 1 Тогда
      Если ПустоеЗначение(КоличествоСтрок) = 0 Тогда
          ОбъектБД.УдалитьСтроки() 
      КонецЕсли;
   КонецЕсли;

ОбъектБД - оказался документом в журнале операций (что и следовало ожидать)

КоличествоСтрок - это число строк в загружаемом документе

НеУдалятьСтроки - это переменная которая была подгружена из шапки загружаемого документа, была "0"
а вот строк в документе не было... навешал простенькую проверку на количество строк:

   Если ПустоеЗначение(НеУдалятьСтроки) = 1 Тогда
      Если (ПустоеЗначение(КоличествоСтрок) = 0) и (ОбъектБД.КоличествоСтрок() > 0) Тогда 
         ОбъектБД.УдалитьСтроки();
      КонецЕсли;
   КонецЕсли;

В итоге загрузка пошла, но споткнулась на создании документа с ошибкой: "не обнаружен объект: КоррСчет", а так же "ДебетСчет","ДебетСубконто1" и т.д.

снова отладка...

Нашел в фунции "ПрочитатьИнформациюОТипеРеквизита":

ИначеЕсли ТипОбъекта = "Операция" Тогда
//обработка операции на различные реквизиты
        Иначе
        РеквМД = МД.РеквизитОперации(Реквизит);
            Если РеквМД.Выбран() = 0 Тогда 
               РеквМД = МД.РеквизитПроводки(Реквизит);
            КонецЕсли;

            Если РеквМД.Выбран() = 0 Тогда 
               Возврат("");
            КонецЕсли;

На вход подавался Реквизит = "ДебетСубконто1" ни "РеквизитОперации", ни "РеквизитПроводки" их не взял. Попробовал подсунуть "Дебет.Субконто1" в "РеквизитПроводки", как и ожидалось он принял этот параметр.

Полез в XML-файл из которого велась загрузка. Заменил всё, что показалось неверным, подсунул файл - отказ в загрузке :(

Звоню в службу поддержки. Где мне ответили, что в нашей фирме конфигурация "Бухгалтерия" давно уже не обновлялась.

Ну вот и встало все на свои места:
конфигурация устарела, и не "умеет" загружать подобный файл. Как ни странно у обработки получилось почти все :)


ЗЫ: Ну, а мне теперь предстоит написать обмен данными между 8 и 7.7 версиями, конечно же она не будет настолько универсальной, но подойдет для достижения поставленной задачи. Но об этом позже

ЗЫЫ: вот такие вот приключения время от времени случаются в моей работе, возможно это как-то связано с моим опытом...

2 комментария:

  1. да все уже знают, что 1С это неудобный и дорогостоящий, при том еще и ненадежный софт, пора переходить на более функциональные и удобные онлайн сервисы, я вот уже пол года на онлайн сервисе «Моё дело» бух.учет веду, очень доволен работой этого ресурса

    ОтветитьУдалить
  2. 1C это очень удобно в плане поддержки форм отчетности и простоты сопровождения. Мы 1С используем как учетку, а систему анализа и корп. хранилище данных снесли на MSSQL+SSAS и жизнь наладилась

    ОтветитьУдалить