8.х Программное создание документа

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Voody, 24 июл 2008.

  1. TopicStarter Overlay
    Voody
    Offline

    Voody Опытный в 1С

    Регистрация:
    16 июл 2008
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    пишу следующий код в модуле формы обработки
    Код:
    НовыйДок = Документы.ОперацияБух.СоздатьДокумент();
    
    Пользователь = Справочники.Пользователи;
    Пользователь.Выбрать();
    
    НовыйДок.Дата = ТекущаяДата();
    НовыйДок.Номер = "12345678910";
    НовыйДок.Автор = Пользователь.НайтиПоКоду("Администратор");
    НовыйДок.Содержание = "Проверка";
    НовыйДок.Ответственный = Пользователь.НайтиПоКоду("Администратор");
    НовыйДок.СуммаОперации = 555666;
    
    Организация = Справочники.Организации;
    Организация.Выбрать();
    
    НовыйДок.Записать(РежимЗаписиДокумента.Запись);
    
    
    
    Документ не создается

    при добавлении следующего кода
    Код:
    Форма = НовыйДок.ПолучитьФорму();
    Форма.Открыть();
    
    
    
    открывается форма документа с заполненными полями (из первого кода), но сохранить документ никак не получается
  2. Melanto
    Offline

    Melanto Опытный в 1С

    Регистрация:
    28 ноя 2007
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Выполнила тот же код, единственно кроме Автора и Ответственного - все записалось. (с пустой организацией)
    1с 8.0.16.2 Бух 1.5.22.3

    А в какой конфе надо сделать?
  3. TopicStarter Overlay
    Voody
    Offline

    Voody Опытный в 1С

    Регистрация:
    16 июл 2008
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    1С:Предприятие 8.1 (8.1.11.67) Бух 1.5.3.10

    У меня тоже звапоняется все, но не сохраняется..
  4. Melanto
    Offline

    Melanto Опытный в 1С

    Регистрация:
    28 ноя 2007
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Так, 1с 8.1.8.76 Бух 1.6.9.4 все работает...
    И в журнале операций есть, и в операциях, введенныз вручную...
    А что, совсем ничего не говорит?
    А если просто Записать() без параметров попробовать?

    А другие документы при создании вручную записываются?
  5. TopicStarter Overlay
    Voody
    Offline

    Voody Опытный в 1С

    Регистрация:
    16 июл 2008
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Если документ формировать из Предариятия, создается нормально

    Конечно пробвал, результат то же
  6. Melanto
    Offline

    Melanto Опытный в 1С

    Регистрация:
    28 ноя 2007
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Другие-то документы если создавать из кода - записывает?
  7. TopicStarter Overlay
    Voody
    Offline

    Voody Опытный в 1С

    Регистрация:
    16 июл 2008
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Не пробовал, щас попробую, отпишусь
  8. TopicStarter Overlay
    Voody
    Offline

    Voody Опытный в 1С

    Регистрация:
    16 июл 2008
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Переназначил процедуру создания дока на другую кнопку и все заработало :unsure: !!! Чё было, не понятно тока...
  9. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Параметры у вас не заполнены были корректно, может провести пытались тем самым.
    Кстати Организацию надо не выбрать - а установить в реквизит документа.

    Вот например мой код по загрузке операций из Excel, немного урезал, чтобы было попроще. Все в бухне 1.5, специально
    Код:
    // Создаем операцию и заполняем шапку
    Оп = Документы.ОперацияБух.СоздатьДокумент();
    Оп.Организация = Организация;
    Оп.Дата = КонецДня(ДатаОперации);
    Оп.Ответственный = глТекущийПользователь;
    Оп.Комментарий = "# Загружен из Excel";
    
    ЕстьПроводки = Ложь;
    ОбщСумма = 0;
    Год2007 = Дата(2007,1,1);
    
    // Цикл по строкам (тут я проводки заполнял)
    
    Оп.СуммаОперации = ОбщСумма;
    
    Если ЕстьПроводки Тогда
    Оп.Записать();
    Если флНУ Тогда //Форму открывал не всегда
    ФРМ = Оп.ПолучитьФорму("ФормаДокумента");
    ФРМ.Открыть();
    КонецЕсли;
    КонецЕсли;
    
    
  10. TopicStarter Overlay
    Voody
    Offline

    Voody Опытный в 1С

    Регистрация:
    16 июл 2008
    Сообщения:
    73
    Симпатии:
    0
    Баллы:
    26
    Я просто в урезал, я организацию заполняю
    Код:
    НовыйДок.Организация = Организации.НайтиПоКоду("0000000001");
    
    я вот процедуру эту всю на другую кнопку вынес, и нормально все стало. Наверное, это из-за того, что все это происходит во время считывания данных из ДБФ таблицы через XBase с использованием транзакции, разбираться надо с этим...

    Какие?
  11. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Во, скорее всего из-за транзакции в ней могла произойти ошибка - надо проверить запись документа находилась ли внутри транзакции или нет.

    В принципе - если решилось, то хорошо.

    Еще можно проверять так - вызывать метод записать с попыткой, а в исключении выводить почему не записалось.

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