Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Изменение реквизитов при создании документа
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
kayfatuch
Доброго времени суток, для меня всё тажа 1С 7.70.048 Торговля и склад для Украины. Вопрос такого плана стараниями многих довольно неплохо(в меру знаний) научился создавать разного вида документы посредством обработок но всё же нашёл пробел который и побудил задать вопрос: Условно мы создаём к примеру накладную любую, у неё есть графа Тип учёта общ/упр/бух и когда мы создаём документ ручками он выставляется автоматом нужный за счёт обращения к глобальному модулю через глИзмТип(Контекст). но когда создаёшь через обработку по умолчанию ставится упр хотя у меня общ. кто-то сталкивался с таким? как можно явно сказать что бы создавался с нужным мне типом учёта? или это надо в глобальный лезть?
andrew76
Цитата(kayfatuch @ 01.03.25, 22:23) необходимо зарегистрироваться для просмотра ссылки
но когда создаёшь через обработку по умолчанию ставится упр хотя у меня общ. кто-то сталкивался с таким? как можно явно сказать что бы создавался с нужным мне типом учёта? или это надо в глобальный лезть?


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



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


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

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

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

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

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

И вот при попытке обратится к этой процедуре она падает в ошибку так как не видит всех параметров. В моём случае ругается что Поле агрегатного объекта не обнаружено (ТипУчета). Вот в этом загвоздка.
kayfatuch
kayfatuch @ Сегодня, 11:28 необходимо зарегистрироваться для просмотра ссылки ,
Текс решение было найдено. Причём я так и не понял почему он раньше не работал....
Итоговое решение было:
Накладная.ТипУчета = Общ;
tibank
kayfatuch @ Сегодня, 11:28 необходимо зарегистрироваться для просмотра ссылки ,
Обратите внимание в процедуре глИзмТип(Конт) параметр Конт должен быть Контекстом формы документа(на форме есть поле со списком). Я так понимаю, что код
Накладная = СоздатьОбъект("Документ.РасходныйКассовый"); 
Накладная.Новый();

Вы пишите в какой-то обработке и контекст передаете этой обработки и там, скорее всего, нет поля или переменной ТипУчета, поэтому и вываливается с ошибкой
andrew76
tibank @ Сегодня, 0:35 необходимо зарегистрироваться для просмотра ссылки ,

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

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


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


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