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

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

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

Автор: kayfatuch 01.03.25, 19:23

Доброго времени суток, для меня всё тажа 1С 7.70.048 Торговля и склад для Украины. Вопрос такого плана стараниями многих довольно неплохо(в меру знаний) научился создавать разного вида документы посредством обработок но всё же нашёл пробел который и побудил задать вопрос: Условно мы создаём к примеру накладную любую, у неё есть графа Тип учёта общ/упр/бух и когда мы создаём документ ручками он выставляется автоматом нужный за счёт обращения к глобальному модулю через глИзмТип(Контекст). но когда создаёшь через обработку по умолчанию ставится упр хотя у меня общ. кто-то сталкивался с таким? как можно явно сказать что бы создавался с нужным мне типом учёта? или это надо в глобальный лезть?

Автор: andrew76 02.03.25, 7:55

Цитата(kayfatuch @ 01.03.25, 22:23) *
но когда создаёшь через обработку по умолчанию ставится упр хотя у меня общ. кто-то сталкивался с таким? как можно явно сказать что бы создавался с нужным мне типом учёта? или это надо в глобальный лезть?


Посмотрите Процедуру ПриЗаписи() этого документа (накладная в вашем случае).
Скорее всего там будет что-то вроде:
Типучёта=бух;




Автор: kayfatuch 02.03.25, 11:28

Цитата(andrew76 @ 02.03.25, 7:55) *
Посмотрите Процедуру ПриЗаписи() этого документа (накладная в вашем случае).
Скорее всего там будет что-то вроде:
Типучёта=бух;


Когда искал по вашей подсказке нашёл решение другого вопроса с формы). А так там ничего подобного нет. Но увы такого пункта нет. Как выглядит оно в обычном документе:
Открывая документ на форме есть пункт со списком у которого прописана функция которая сразу выполняется:
глИзмТип(Контекст)

В глобальном модуле она имеет такой вид:
Процедура глИзмТип(Конт) Экспорт
    Перем ВремФин, УстановитьНомер;

    Конт.ТипУчета=Конт.Тип.ТекущаяСтрока()-1;
    ВремФин =?(Конт.ТипУчета>Упр,1,0);

    // Вопрос о смене номера хочется задавать только при смене фин.учета
    Если Конт.ФинУчет<>ВремФин Тогда
        Конт.ФинУчет =ВремФин;
        // изменили учет (Общ. относится к финучету)
        УстановитьНомер="Да";
        Если Конт.Выбран() = 1 Тогда
            УстановитьНомер=Вопрос("Изменить номер документа?","Да+Нет");
        КонецЕсли;
        Если УстановитьНомер="Да" Тогда
            глУстановитьНомерДок(Конт);
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Как я понял открывая документ она делает перепроверку и за счёт этого подставляет нужный тип учёта. Но я же создаю документ через:
Накладная = СоздатьОбъект("Документ.РасходныйКассовый"); 
            Накладная.Новый();

И вот при попытке обратится к этой процедуре она падает в ошибку так как не видит всех параметров. В моём случае ругается что Поле агрегатного объекта не обнаружено (ТипУчета). Вот в этом загвоздка.

Автор: kayfatuch 02.03.25, 16:30

kayfatuch @ Сегодня, 11:28 * ,
Текс решение было найдено. Причём я так и не понял почему он раньше не работал....
Итоговое решение было:

Накладная.ТипУчета = Общ;

Автор: tibank 02.03.25, 21:35

kayfatuch @ Сегодня, 11:28 * ,
Обратите внимание в процедуре глИзмТип(Конт) параметр Конт должен быть Контекстом формы документа(на форме есть поле со списком). Я так понимаю, что код

Накладная = СоздатьОбъект("Документ.РасходныйКассовый"); 
Накладная.Новый();

Вы пишите в какой-то обработке и контекст передаете этой обработки и там, скорее всего, нет поля или переменной ТипУчета, поэтому и вываливается с ошибкой

Автор: andrew76 03.03.25, 9:12

tibank @ Сегодня, 0:35 * ,

Так он вроде бы сам справился:

Накладная = СоздатьОбъект("Документ.РасходныйКассовый"); 
Накладная.Новый();
Накладная.ТипУчета = Об;


Цитата(kayfatuch @ 02.03.25, 14:28) *
Открывая документ на форме есть пункт со списком у которого прописана функция которая сразу выполняется:


Или создать аналогичный объект,как на форме документа (есть пункт со списком) на форме обработки.

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