Версия для печати темы (https://pro1c.org.ua/index.php?s=ae66034e52cc40ef0933e6619f1d0c5d&showtopic=25636)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Конфигурация "1С:Конвертация данных" _ Перенос субконто 7.7 --> 8.2.

Автор: pyrkin_vanya 10.10.15, 15:56

Всем привет. Ребят, прошу помощи. Пишу правила конвертации с 7.7 в 8.2. Конфигурации самописные, но очень похожи на Бухгалтерский учет 4.5 и бухгалтерия предприятия 2.0. Но это не они. В типовых правилах не смог найти ответ на свой вопрос. А вопрос следующий. Например в 7.7 есть счет 41.1 и у него есть субконто1 - Номенклатура, Субконто2 - МестаХранения. И есть счет из 8.2 с кодом 41.1, но с другими субконто. Субконто1 - МестаХранения, Субконто2 - МОЛ, Субконто3 - Номенклатура. Каким образом сделать такое преобразование?

Автор: Acid 10.10.15, 21:58

не ясно какая задача стоит?

Автор: pyrkin_vanya 11.10.15, 8:12

Цитата(Acid @ 10.10.15, 22:58) *
не ясно какая задача стоит?

Что конкретно не понятно? Я даже не знаю какими словами рассказать. Переношу проводки из конфигурации на платформе 7.7 в конфигурацию на платформе 8.2 Переношу с помощью конфигурации "Конвертация данных". Пишу правила обмена. Один из примеров: Переношу проводку по счету 41.1. В 7.7 у этого счета есть всего два субконто, субконто1 - Номенклатура, Субконто2 - МестаХранения. Но в 8.2 на этом же счету 41.1 другие субконто. Субконто1 - МестаХранения, Субконто2 - МОЛ, Субконто3 - Номенклатура. Как Видно, то субконто разные, а даже те, что одинаковые стоят не в том порядке. Вопрос: Каким образом выполнить преобразование такое? Как сделать так, чтобы Субконто1 из 7.7 стало субконто3 в 8.2? Так понятнее?

Автор: Acid 12.10.15, 8:20

с таким подходом результат ваших усилий стремится к нулю. Вы переносите данные в восьмерочную конфигурацию, о которой вы ничего не знаете, и почитать о ней не хотите. Кроме того вы и конвертацию не читали.

Вопрос мой сводился - это перенос остатков с целью перейти на восьмерку, или цель обмен данными? Если обмен, то вы в правильном направлении. Почти. А если перенос остатков, то в восьмерке правильно остатки заводить документами по вводу остатков.

Автор: pyrkin_vanya 12.10.15, 8:39

Цитата(Acid @ 12.10.15, 9:20) *
с таким подходом результат ваших усилий стремится к нулю. Вы переносите данные в восьмерочную конфигурацию, о которой вы ничего не знаете, и почитать о ней не хотите. Кроме того вы и конвертацию не читали.

Вопрос мой сводился - это перенос остатков с целью перейти на восьмерку, или цель обмен данными? Если обмен, то вы в правильном направлении. Почти. А если перенос остатков, то в восьмерке правильно остатки заводить документами по вводу остатков.

Вы знаете ответ на мой вопрос?

Автор: Acid 12.10.15, 11:08

Да. Это нужно прописывать ПКО.

Автор: pyrkin_vanya 12.10.15, 11:18

Цитата(Acid @ 12.10.15, 12:08) *
Да. Это нужно прописывать ПКО.

Простите меня конечно, если Вам нагрубил где. Или еще что. Я понимаю, что Вы ветеран на этом форуме. Но Вы поставьте себя на мое место. У меня есть проблема. Я обратился за помощью к людям, которые, возможно, уже сталкивались с этим. Не нужно думать, что Вы самый умный человек на земле.
А теперь по теме.
Уже выяснили, что Вы знаете как решить мой вопрос. Отлично. Какое ПКО прописать? Как его прописать? Что именно в нем прописать? ПКО работает только при выгрузке. При загрузке оно не работает. Точнее обработчиков нет. Но это и логично. ПКО сразу отпадает, т.к. количество субконто и его состав может меняться в предприятии уже в приемнике. Информации на этапе выгрузке об этом еще не известно. Единственный логичный ход это выполнять преобразование в момент загрузки.
Если у Вас есть пример, дайте пример пожалуйста. Если есть мысль, напишите ее. Теряем много времени на поверхностные ответы. Без обид, Вы сами их и плодите.

Автор: Acid 12.10.15, 11:46

Цитата(Acid @ 12.10.15, 9:20) *
Вопрос мой сводился - это перенос остатков с целью перейти на восьмерку, или цель обмен данными?

Конкретно что вам нужно? Мы еще не выяснили что вам нужно. Переезжаете на 8-ку?

Автор: pyrkin_vanya 12.10.15, 11:50

Цитата(Acid @ 12.10.15, 12:46) *
Конкретно что вам нужно? Мы еще не выяснили что вам нужно. Переезжаете на 8-ку?

Хорошо. Я не переезжаю на 8-ку. Стоит задача. Из 7.7 перекинуть все проводки по определенному списку счетов в 8.2. Конфигурации очень схожи с типовыми Бухгалтерский учет 4.5 и Бухгалтерия предприятия 2.0. На данный момент возникла только одна проблема. Это выгрузка субконто по счетам. Если, скажем, в 7.7 на счету субконто точно такое же как и в 8.2, то проблем нет. А если оно другое, то вот здесь появляется проблема.

Автор: Acid 12.10.15, 11:53

Есть еще одна проблема - регистры накоплений.

http://pro1c.org.ua/index.php?showtopic=6028

http://pro1c.org.ua/index.php?showtopic=4097&mode=linearplus


Автор: pyrkin_vanya 12.10.15, 11:57

Цитата(Acid @ 12.10.15, 12:53) http://pro1c.org.ua/index.php?act=findpost&pid=104017

http://pro1c.org.ua/index.php?showtopic=4097&mode=linearplus

Нет, там только один регистр, это Регистр бухгалтерии.

Сейчас пробую разобрать файл обмена при загрузке.

Автор: Acid 12.10.15, 15:33

Для 3-его субконто укажите жестко Параметр/переменную. Его надо прописать в конвертации (то ли Константы, то ли Параметры. точно не помню)

Автор: pyrkin_vanya 12.10.15, 16:05

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

Для каждого Корреспонденция из Объект.Движения.Хозрасчетный Цикл
    Для каждого Субконто из Корреспонденция.СубконтоДт Цикл
        Ок = Ложь;
        Для каждого ВидыСубконто из Корреспонденция.СчетДт.ВидыСубконто Цикл
            Если ВидыСубконто.ВидСубконто = Субконто.Ключ Тогда
                Ок = Истина;
                Прервать;
            КонецЕсли;
        КонецЦикла;
      
        Если не Ок Тогда
            Корреспонденция.СубконтоДт.Удалить(Субконто.Ключ);
        КонецЕсли;
    КонецЦикла;
  
    Для каждого Субконто из Корреспонденция.СубконтоКт Цикл
        Ок = Ложь;
        Для каждого ВидыСубконто из Корреспонденция.СчетКт.ВидыСубконто Цикл
            Если ВидыСубконто.ВидСубконто = Субконто.Ключ Тогда
                Ок = Истина;
                Прервать;
            КонецЕсли;
        КонецЦикла;
      
        Если не Ок Тогда
            Корреспонденция.СубконтоКт.Удалить(Субконто.Ключ);
        КонецЕсли;
    КонецЦикла;
  

    Если (Корреспонденция.СчетДт = ПланыСчетов.Хозрасчетный.ПустаяСсылка())
        или (НЕ Корреспонденция.СчетДт.Валютный) Тогда
        Корреспонденция.ВалютаДт = Справочники.Валюты.ПустаяСсылка();
        Корреспонденция.ВалютнаяСуммаДт = 0;
    КонецЕсли;
    Если (Корреспонденция.СчетКт = ПланыСчетов.Хозрасчетный.ПустаяСсылка())
        или (НЕ Корреспонденция.СчетКт.Валютный) Тогда
        Корреспонденция.ВалютаКт = Справочники.Валюты.ПустаяСсылка();
        Корреспонденция.ВалютнаяСуммаКт = 0;
    КонецЕсли;
    Если (Корреспонденция.СчетДт = ПланыСчетов.Хозрасчетный.ПустаяСсылка())
        или (НЕ Корреспонденция.СчетДт.Количественный) Тогда
        Корреспонденция.КоличествоДт = 0;
    КонецЕсли;
    Если (Корреспонденция.СчетКт = ПланыСчетов.Хозрасчетный.ПустаяСсылка())
        или (НЕ Корреспонденция.СчетКт.Количественный) Тогда
        Корреспонденция.КоличествоКт = 0;
    КонецЕсли;
КонецЦикла;

Объект.Движения.Хозрасчетный.Записывать = Истина;

Acid, если не брать во внимание ссылку на книгу, то другая ссылка не подошла для решения. Прошу прощения, если напряг Вас сильно. Вопрос решен.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua