[РЕШЕНО] Перенос документов из 7.7 в 8.2

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем SpiritAT, 7 мар 2014.

  1. TopicStarter Overlay
    SpiritAT
    Offline

    SpiritAT Опытный в 1С

    Регистрация:
    8 авг 2013
    Сообщения:
    157
    Симпатии:
    0
    Баллы:
    26
    Код:
    Сотр = НайтиСотрудника(Док.Сотрудник.Код, "", Док.ДатаДок);
         Если Сотр <> ""  Тогда
         Если Документы.Аттестация.НайтиПоНомеру(Док.НомерДок,Док.ДатаДок).Пустая() Тогда
                НовыйДокумент = Документы.Аттестация.СоздатьДокумент();
               
                НовыйДокумент.Дата = Док.ДатаДок;
                НовыйДокумент.Номер = Док.НомерДок;
    
                НовыйДокумент.Начало=Док.Начало;   
                НовыйДокумент.Сотрудник=Справочники.СотрудникиОрганизаций.НайтиПоНаименованию(СОКРЛП(Док.Сотрудник.Наименование)).Ссылка;
                НовыйДокумент.Должность=Справочники.ДолжностиОрганизаций.НайтиПоНаименованию(СОКРЛП(Док.Должность.Наименование)).Ссылка;
                НовыйДокумент.Подразделение=Справочники.ПодразделенияОрганизаций.НайтиПоНаименованию(СОКРЛП(Док.Подразделение.Наименование)).Ссылка;
                //НовыйДокумент.Вид=Справочники.КОпоРП.НайтиПоНаименованию(СОКРЛП(Док.Вид.Наименование)).Ссылка;
                НовыйДокумент.Область=Справочники.КОпоРП.НайтиПоНаименованию(СОКРЛП(Док.Область.Наименование)).Ссылка;
                НовыйДокумент.Программа=Справочники.КОпоРП.НайтиПоНаименованию(СОКРЛП(Док.Программа.Наименование)).Ссылка;
                НовыйДокумент.Категория=Справочники.КОпоРП.НайтиПоНаименованию(СОКРЛП(Док.Категория.Наименование)).Ссылка;
                НовыйДокумент.УчебныйЦентр=Справочники.КОпоРП.НайтиПоНаименованию(СОКРЛП(Док.УчебныйЦентр.Наименование)).Ссылка;
                НовыйДокумент.НомерУдостоверения=Док.НомерУдостоверения;
                НовыйДокумент.ДатаУдостоверения=Док.ДатаУдостоверения;
                НовыйДокумент.Стоимость=Док.Стоимость;
                НовыйДокумент.Примечание=Док.Примечание;
                НовыйДокумент.НомерПротокола=Док.НомерПротокола;
                НовыйДокумент.Оплата=Док.Оплата;
                НовыйДокумент.НомерАктВыпРабот=Док.НомерАктВыпРабот;
                НовыйДокумент.ДатаАктВыпРабот=Док.ДатаАктВыпРабот;
    
               
                НовыйДокумент.Записать(РежимЗаписиДокумента.Запись);
                ДокНЗ = НовыйДокумент.ЭтотОбъект;
                ДокНЗ.Записать(РежимЗаписиДокумента.Проведение);
                ДокНЗ.Записать(РежимЗаписиДокумента.Запись);
    
            КонецЕсли;
           КонецЕсли;
    
    Подскажите плиз где ошибка 2 дня мозг выношу и понять не могу в чем ошибка . Смотрю по компилятору он данные видит но не заносит их(((
  2. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    что означает "не заносит"? просто ничего не делает? падает с ошибкой (с какой)?
    что в переменной Док?
  3. TopicStarter Overlay
    SpiritAT
    Offline

    SpiritAT Опытный в 1С

    Регистрация:
    8 авг 2013
    Сообщения:
    157
    Симпатии:
    0
    Баллы:
    26
    "Не заносит" пустые данные вносит.
    НовыйДокумент.Сотрудник=Справочники.СотрудникиОрганизаций.НайтиПоНаименованию(СОКРЛП(Док.Сотрудник.Наименование)).Ссылка;
    Вот эта строка работает он находит сотрудника и вписывает его в документ.
    НовыйДокумент.Должность=Справочники.ДолжностиОрганизаций.НайтиПоНаименованию(СОКРЛП(Док.Должность.Наименование)).Ссылка;
    вроде правильно все но найдя должность правильно он ее не вносит в документ((.
    док ото обьект документов из 7 . (Док = v7.CreateObject("Документ");)
  4. TopicStarter Overlay
    SpiritAT
    Offline

    SpiritAT Опытный в 1С

    Регистрация:
    8 авг 2013
    Сообщения:
    157
    Симпатии:
    0
    Баллы:
    26
    ошибок не выдает. просто оставляет пустые поля((
  5. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    типы полей соответствуют тому, что в них записывается? обработчики/подписки ПередЗаписью их не обрабатывают?

    в качестве маленькой придирки :))) - .Ссылка не нужно - функция и так ссылку возвращает.
  6. TopicStarter Overlay
    SpiritAT
    Offline

    SpiritAT Опытный в 1С

    Регистрация:
    8 авг 2013
    Сообщения:
    157
    Симпатии:
    0
    Баллы:
    26
    Да типы полей соответствуют заносящим в них данные.
  7. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    вот в этой конструкции
    Код:
                НовыйДокумент.Записать(РежимЗаписиДокумента.Запись);
                ДокНЗ = НовыйДокумент.ЭтотОбъект;
                ДокНЗ.Записать(РежимЗаписиДокумента.Проведение);
                ДокНЗ.Записать(РежимЗаписиДокумента.Запись);
    
    посмотрите под отладчиком значения этих реквизитов до записи НовыйДокумент, после записи и перед и после проведения. есть подохрение, что конструкция странная.
  8. TopicStarter Overlay
    SpiritAT
    Offline

    SpiritAT Опытный в 1С

    Регистрация:
    8 авг 2013
    Сообщения:
    157
    Симпатии:
    0
    Баллы:
    26
    Не ошибка не там тут все хорошо. Ошибка была моя в том что я не из того справочника подставлял данные. сп за помощь.
  9. TopicStarter Overlay
    SpiritAT
    Offline

    SpiritAT Опытный в 1С

    Регистрация:
    8 авг 2013
    Сообщения:
    157
    Симпатии:
    0
    Баллы:
    26
    //НовыйДокумент.Вид=Справочники.КОпоРП.НайтиПоНаименованию(СОКРЛП(Док.Вид.Наименование)).Ссылка; осталось тока с ней разобраться)))
  10. TopicStarter Overlay
    SpiritAT
    Offline

    SpiritAT Опытный в 1С

    Регистрация:
    8 авг 2013
    Сообщения:
    157
    Симпатии:
    0
    Баллы:
    26
    {Форма.Форма.Форма(1488)}: Значение не является значением объектного типа (Наименование)
    НовыйДокумент.Вид=Справочники.КОпоРП.НайтиПоНаименованию(СОКРЛП(Док.Вид.Наименование)).Ссылка;
    пишет
  11. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    там перечисление?
    самый тупой вариант - приводить значение к строке и проверать
    просто условием Если-ИначеЕсли...
  12. TopicStarter Overlay
    SpiritAT
    Offline

    SpiritAT Опытный в 1С

    Регистрация:
    8 авг 2013
    Сообщения:
    157
    Симпатии:
    0
    Баллы:
    26
    Самое странное что он не видит значение в справочнике в обще не какое. Хотя справочник заполнен.
  13. TopicStarter Overlay
    SpiritAT
    Offline

    SpiritAT Опытный в 1С

    Регистрация:
    8 авг 2013
    Сообщения:
    157
    Симпатии:
    0
    Баллы:
    26
    проверкой пробовал нечего не видит(((
  14. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    проверкой как?
    Код:
    ПредставлениеПеречисления = Строка(Док.Вид);
    Если ПредставлениеПеречисления="..." Тогда
    ..
    так?
  15. TopicStarter Overlay
    SpiritAT
    Offline

    SpiritAT Опытный в 1С

    Регистрация:
    8 авг 2013
    Сообщения:
    157
    Симпатии:
    0
    Баллы:
    26
    Код:
    Если ПредставлениеПеречисления="" Тогда
                    НовыйДокумент.Вид=" ";
                    Иначе
                НовыйДокумент.Вид=Справочники.КОпоРП.НайтиПоНаименованию(СОКРЛП(Док.Вид.Наименование)).Ссылка;
                КонецЕсли;
  16. TopicStarter Overlay
    SpiritAT
    Offline

    SpiritAT Опытный в 1С

    Регистрация:
    8 авг 2013
    Сообщения:
    157
    Симпатии:
    0
    Баллы:
    26
    он мне пробелы и ставит(( хотя справочник заполнен
  17. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    Код:
    Если ПредставлениеПеречисления="" Тогда
      НовыйДокумент.Вид=Справочники.КОпоРП.ПустаяСсылка();
    Иначе
      НовыйДокумент.Вид=Справочники.КОпоРП.НайтиПоНаименованию(ПредставлениеПеречисления);
    КонецЕсли;
  18. TopicStarter Overlay
    SpiritAT
    Offline

    SpiritAT Опытный в 1С

    Регистрация:
    8 авг 2013
    Сообщения:
    157
    Симпатии:
    0
    Баллы:
    26
    даже при таком варианте пустую строку вставляет((
  19. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    выведи в сообщение значения переменной ПредставлениеПеречисления и проверь, что в справочнике они есть
  20. TopicStarter Overlay
    SpiritAT
    Offline

    SpiritAT Опытный в 1С

    Регистрация:
    8 авг 2013
    Сообщения:
    157
    Симпатии:
    0
    Баллы:
    26
    справочник заполнен руками можно выбрать. а вот автоматом он не ставит. почему то он не видит их в 7. хотя там тоже все заполнено

Поделиться этой страницей