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

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

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

Автор: jojojoba2 22.05.19, 8:55

Добрый день!

Конфигурация УПП для Украины. Есть документ ПеремещениеТоваров. Я для него исправляю типичную форму с вывод суммы для товара. Данные взял с регистра Бухгалтерии Хозрасчетный( ХозрасчетныйОбороты). Форма работает ,но при выборе 023 счета пишет "индекс находится за границами массива".Я разобрался, В запросе при выборе ХозрасчетныйОбороты.КорСубконто1 попадает значение NULL :

|ВЫБРАТЬ
|    ХозрасчетныйОбороты.КорСубконто1,
|    ХозрасчетныйОбороты.СуммаОборотДт
|ИЗ
|    РегистрБухгалтерии.Хозрасчетный.Обороты(, , Регистратор, , , , , ) КАК ХозрасчетныйОбороты
|ГДЕ
|    ХозрасчетныйОбороты.Регистратор = &Ссылка



Для Счета 023 нужно использовать запрос :

|ВЫБРАТЬ
|    ХозрасчетныйОбороты.КорСубконто2,
|    ХозрасчетныйОбороты.СуммаОборотДт
|ИЗ
|    РегистрБухгалтерии.Хозрасчетный.Обороты(, , Регистратор, , , , , ) КАК ХозрасчетныйОбороты
|ГДЕ
|    ХозрасчетныйОбороты.Регистратор = &Ссылка


и форма по 023 работает норм.Но другие тогда не пашут.

Подскажите пожалуйста начинающему програмисту, как сделать правильно выбор между запросами. Я хочу сравнить Значение поля табличной части с 023 счетом:


@@ Если Документы.ПеремещениеТоваров.Товары.СчетУчетаБУ = "023" то запрос 2, иначе запрос 1.@@ Товары-это ТАБЛИЧНАЯ ЧАСТЬ, СчетУчетаБУ- это реквизит табличной табличной части.

Как вытащить значение из СчетУчетаБУ с сылкой на товар в документе? Можете сбросить подобный пример.

Спасибо!


 ! 

http://pro1c.org.ua/index.php?act=announce&id=2: 9
 

Автор: Vofka 22.05.19, 10:24

Если у вас на всех счетах, которые вы обрабатываете, есть одно и то же субконто, но оно находится в разном порядке, можно передать специальный параметр в РегистрБухгалтерии.Хозрасчетный.Обороты(, , Регистратор, , &ВидыСубконто, , , )

ВидыСубконто = Новый Массив;
ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ВАШЕ_СУБКОНТО);
Запрос.УстановитьПараметр("ВидыСубконто", ВидыСубконто);


После этого можно будет обращаться к нему ХозрасчетныйОбороты.КорСубконто1 независимо от того хранится ли оно физически в КорСубконто1 или КорСубконто2

Автор: jojojoba2 22.05.19, 15:32

Vofka @ Сегодня, 11:24 * ,
Спасибо, все заработало.

Но все же уже, чисто, интересно как сделать сравнение реквизита Табличной Части с другим значением с помощью менеджера :

@@ Если Документы.ПеремещениеТоваров.Товары.СчетУчетаБУ = "023" то запрос 2, иначе запрос 1.@@ Товары-это ТАБЛИЧНАЯ ЧАСТЬ, СчетУчетаБУ- это реквизит табличной табличной части.

Автор: Vofka 23.05.19, 8:17

Если правильно понял, то использовать конструкцию ВЫБОР ... КОГДА ... КОНЕЦ (псевдокод):

ВЫБОР
   КОГДА ...Счет = "023" ТОГДА Субконто1
   ИНАЧЕ Субконто2
КОНЕЦ КАК МоеСубконто


для спасибо у нас специальная кнопка есть

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