Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как программно заполнить табличную часть документа 1с 7.7 конф 7.7.00
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
ZUBR
Здравствуйте!
У меня в РасходнойНакладной есть реквизит ПриВыд с типом Справочник.Номенклатура и реквизит Ак с типом Число.
Из єтой РасходнойНакладной я создаю новую РасходнуюНакладную.
В модуле формы прописан код создания новой расходной накладной через СоздатьОбъект. Название объекта Акс.
Мне нужно, чтобы в табличной части нового документа программно прописывался товар ПриВыд в количестве Ак.
Привожу кусок кода

Акс.НоваяСтрока();
    Акс.Товар=ПриВыд;
    Акс.Количество=Ак;
...........................................................
         Акс.Записать();

Программа создает этот документ, но не подставляет сама ни единиц в графу единицы, ни цены, не считает суммы, короче, только проставляет эти два параметра. Как сделать так, чтобы программно проставлялись в табличную часть все реквизиты товара ПриВыд?
Да, и у меня еще есть ПриВыд2 и ПриВыд3 с Ак2 и Ак3 соответственно. То есть, мне нужно программно внести в табличную часть три товара с ценами, подсчитать сумму, ну, вобщем, программно создать для них расходную накладную. Спасибо!
P.S. Пустая накладная у меня создается без проблем. Меня интересует лишь заполнение табличной части, используя товар ПриВыд и количество Ак
denis84
ZUBR @ Сегодня, 1:43 необходимо зарегистрироваться для просмотра ссылки ,
Добрый день! Для остальных реквизитов - прописать эти процедуры изменения т.е. при изменении ПриВыд и т.д. должна отрабатывать процедура

denis84 @ Сегодня, 8:47 необходимо зарегистрироваться для просмотра ссылки ,
Т. е. на реквизит ПриВыд назначить процедуру изменения остальных реквизитов.
denis84
denis84 @ Сегодня, 9:04 необходимо зарегистрироваться для просмотра ссылки ,
Процедура ПриИзмПривыд()
Акс.цена = товар.цена;
Акс.Количество=Ак;
Акс. Сумма = Акс.количество*акс.цена;

Акс.Записать();
Что такое надо написать и установить эту процедуру на реквизит привыд
ZUBR
denis84 @ Сегодня, 11:25 необходимо зарегистрироваться для просмотра ссылки ,
Спасибо! Но мне хотелось чего-то попроще. Чтобы как через кнопку Подбор. А то там еще надо и единицы прописывать, и, наверное, итог в конце...
Но если по-другому нельзя, буду дублировать...
denis84
ZUBR @ Сегодня, 19:52 необходимо зарегистрироваться для просмотра ссылки ,
Для подбора есть процедура в глобальном модуле прописана. Можете там посмотреть. Но смысл такой же
ZUBR
denis84 @ Вчера, 11:25 необходимо зарегистрироваться для просмотра ссылки ,
все замечательно, только Акс.Цена = Товар.Цена; не работает. Не находит поля агрегатного объекта Цена.
Оно и понятно. Ведь в справочнике номенклатура нет ореквизита Цена. Цены находятся в подчиненном справочнику "Справочник.Номенклатура" справочнике "Справочник. Цены".
Кстати, как-то пытался въехать, как эти два справочника взаимодействуют, но так и не понял.
Подскажите, как получить Акс.Цена?
Акс.цена = товар.цена;
не работает.
Спасибо!
denis84
Добрый день! Если не ошибаюсь, то вроде так:
    
    ЦеныТовара = СоздатьОбъект("Справочник.Цены");
    ЦеныТовара.ИспользоватьВладельца(Товар);
    ЦеныТовара.ВыбратьЭлементы();
    Пока ЦеныТовара.ПолучитьЭлемент()  = 1 Цикл
        Если ЦеныТовара.ПометкаУдаления() = 1 Тогда
            Продолжить;
        КонецЕсли;
        
        Результат = ЦеныТовара.ТекущийЭлемент();
    
    КонецЦикла;
mut
После того как заполнили товар в строке, смотрите, что вызывается в форме при изменении товара и копируйте вызов.
Там же будет и заполнение цены.
После того как заполнили цену, количество, смотрите, как в форме вызывается пересчет строки. Копируйте вызов.
ZUBR
denis84 @ Вчера, 10:07 необходимо зарегистрироваться для просмотра ссылки ,
Не совсем понятно. Что такое Результат? И что такое Продолжить?

denis84 @ Вчера, 10:07 необходимо зарегистрироваться для просмотра ссылки ,
Только что пытался разобраться в глобальном модуле, как там это делается. Не смог. Мало знаний и информации.
denis84
ZUBR @ Сегодня, 21:29 необходимо зарегистрироваться для просмотра ссылки ,
Если элемент помечен на удаление ищем следующий.

Результат - это и есть цена. Напишите у себя это. Подставьте свои переменные. Проверьте через сообщить(). Это кусок кода из торговли и склад 7.7. Вы спрашивали,как выбрать из подчинённого справочник а цены получить цену товар,вот этот код Вам поможет. Только замените на свои переменные, вот ту строку "продолжить" можете выбросить.
ZUBR
mut @ 18.06.20, 11:45 необходимо зарегистрироваться для просмотра ссылки ,
Ваш метод, к сожалению, не действует, потому что код заполнения документа находится в другом документе.
Акс =СоздатьОбъект ("Документ.РасходнаяНакладная"); 
.................................................................................;
.................................................................................;
           Акс.НоваяСтрока();
        Акс.Товар=ПриВыд;
               глПриИзмененииТовара(Контекст);
        Акс.Количество=Ак;
                глВыч_суммы_накл(Контекст);  
.................................................................................;

То есть,ссылка глПриИзмененииТовара(Контекст); действует на текущий документ, а не на создаваемый... 64000000.gif
mut
Цитата(ZUBR @ 20.06.20, 2:13) необходимо зарегистрироваться для просмотра ссылки
То есть,ссылка глПриИзмененииТовара(Контекст); действует на текущий документ, а не на создаваемый.


Ну при копировани, конечно, нужно понимать, что происходит в копируемом куске. В этом случае "Контекст" должен передать контекст вашего создаваемого документа, по этому вам у себя надо писать
глПриИзмененииТовара(Акс);

Точно также и далее.
ZUBR
mut @ Сегодня, 12:27 необходимо зарегистрироваться для просмотра ссылки ,
все получилось! Теперь я знаю, что такое "контекст"!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.