Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 апр 2025, 23:42

Ввод на основании

Автор Egor97, 11 мая 2022, 13:45

0 Пользователей и 1 гость просматривают эту тему.

ВанСаныч

LexaK, Да, этот код правильный и работает. Сейчас в ДокументСсылка.ЗаказПоставщику в табличную часть Товары добавлена колонка типа булево Объект.Товары.КОформлению истина в ней проставляется командой. Нужно чтобы при вводе на основании заполнялись только строки, в которых флаг проставлен истина. Пытаюсь доработать код и написать проверку перед циклом, никак не получается обратиться КОформлению. Я из за нехватки опыта и знаний не могу понять почему все колонки в этом модуле в доступе кроме новой КОформлению.

LexaK

ВанСаныч, попробуйте примерно такой код
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказПоставщику") Тогда
                Склад = ДанныеЗаполнения.Склад;
                Поставщик = ДанныеЗаполнения.Поставщик;
                СуммаДокумента = ДанныеЗаполнения.СуммаДокумента; //а вот сумму надо пересчитать           
            Для Каждого ТекСтрокаТовары Из ДанныеЗаполнения.Товары Цикл       
Если НоваяСтрока.КОформлению Тогда
            НоваяСтрока = Товары.Добавить();
            НоваяСтрока.Количество = ТекСтрокаТовары.Количество;
            НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклатура;
            НоваяСтрока.Сумма = ТекСтрокаТовары.Сумма;
            НоваяСтрока.ЦенаПоступления = ТекСтрокаТовары.ЦенаПоступления;
КонецЕсли;
        КонецЦикла;   
    КонецЕсли;
если помогло нажмите: Спасибо!

ВанСаныч

LexaK, Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказПоставщику") Тогда
Склад = ДанныеЗаполнения.Склад;
Поставщик = ДанныеЗаполнения.Поставщик;
        СуммаДокумента = ДанныеЗаполнения.СуммаДокумента;
Для Каждого ТекСтрокаТовары Из ДанныеЗаполнения.Товары Цикл
Если ТекСтрокаТовары.КОформлению = Истина Тогда
НоваяСтрока = Товары.Добавить();
НоваяСтрока.Количество = ТекСтрокаТовары.Количество;
НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклатура;
НоваяСтрока.Сумма = ТекСтрокаТовары.Сумма;
НоваяСтрока.ЦенаПоступления = ТекСтрокаТовары.ЦенаПоступления;
   КонецЕсли;
КонецЦикла;
Вот так победил его. Спасибо большое

Новый

LexaK, Такая же история в этой теме, все отрабатывает, но есть одно но...Из заказа поставщика на основании поступлений, к оформлению переносится товар, но дополнительно "пустаяСтрока" в таблице поступлений.......( Какое то условие надо задать c функцией и методом очистки или удаления?
Если ТекСтрокаТовары.КОформлению = "ПустаяСтрока" Тогда

            ТекСтрокаТовары.Номенклатура = ЛОжь и т.д;;; Как грамотно это реализовать?

antoneus

Ну смотрите, сначала добавляете строку, потом проверяете условие. Наоборот же надо

Если ТекСтрокаТовары.КОформлению Тогда//= ИСТИНА не нужно
    НоваяСтрока = Товары.Добавить();

Новый

antoneus, Спасибо вам большое, наоборот, такая мелочь, поэтому и пустая строка.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск