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

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Не проводится документ.

Автор: l2d808 13.01.16, 8:11

С праздником Уважаемое сообщество. Возникли некоторые проблемы с проводкой документов. Но о бо всем по порядку. У меня самописная конфигурация 1с77. В реализации задачи, в модуле документа А создал документ Б для того что бы провести документ А необходимо провести документ Б. Приведу кусок модуля из документа А:

    Док=создатьобъект("Документ.УПереробку");
    НачатьТранзакцию();
    //Создаем новый документ      
    Док.Новый();
    //Док.Оператор=глОператор;  
    Док.КонтрАгент=КонтрАгент;
    Док.Сировина=Сировина;
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку()=1 Цикл
        Если ТЗ.КількістьНаПереробку>0 Тогда
            Док.НоваяСтрока();
            Док.ТМЦ=ТЗ.ТМЦ;
            Док.Ф14=ТЗ.Док;
            Док.Кількість=ТЗ.КількістьНаПереробку;
            Док.Дата=ТЗ.Док.ДатаДок;    
        КонецЕсли;
    КонецЦикла;  
    ддд=Док.ТекущийДокумент();
    Док.Записать();
    Док.Провести();
    НабірГотовоїПродукції=ддд;

НабірГотовоїПродукції являеться реквизитом шапки документа А. Вопров: где я допустил ошибку? НабірГотовоїПродукції не присвеваеться соотвецтвенно созданого документа Б (Документ.УПереробку).
Помогите... Схожу с ума, где допустил ошибку?

Автор: Zaval 13.01.16, 8:53

Посмотрите Отладчиком 4 строку снизу.
Не думаю, что "текущийДокумент" сработает.

ЗЫ. А вообще, сама идея ущербная... ох и гемору будет.

Автор: Acid 13.01.16, 9:04

Если так не сработает:

НабірГотовоїПродукції=Док;

Тогда надо будет сделать так:
ддд=создатьобъект("Документ.УПереробку");
Если ддд.НайтиДокумент(Док)=1 Тогда
НабірГотовоїПродукції=ддд.ТекущийДокумент();
КонецЕсли;


*ну и транзакцию нужно убрать.

Автор: l2d808 13.01.16, 9:24

Если провести с последними строками менипуляции таким образом:

Док.Записать(); 
    ддд=Док.ТекущийДокумент();
    //Док.Провести();
    НабірГотовоїПродукції=ддд;

Получаеться: В поле шапки НабірГотовоїПродукції появляеться документ УПереробку тобишь Документ Б. Но открыв поле выбором, его по факту нет. и при сохранении и последующем открытии документа А в поле прописываеться сам документ А, хотя в реквизитах НабірГотовоїПродукції четко прописано документ.УПереробку. Какие еще есть идеи?

Автор: nysysimara 13.01.16, 9:28

а проверьте тип значения реквизита НабірГотовоїПродукції,
может там не Документ.УПереробку?

Автор: l2d808 13.01.16, 9:31

Acid @ Сегодня, 9:04 *,
Спасибо... Я болван... 32542620.gif Вся проблема в транзакции... Ваш свежий взгляд расставил все на свои места...

Автор: Acid 13.01.16, 9:59

транзакцию убрали?

Автор: l2d808 14.01.16, 9:53

Acid @ Вчера, 9:59 *,
Да

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