Имя: Пароль:
1C
1С v8
Вывести остаток в список номенклатуры 8.3
0 RussellCrowe
 
03.02.22
11:48
Добрый день,

не получается вывести остаток в список номенклатуры.

Создал функцию

&НаСервере
Функция РасчитатьОстаток(товар)  ;
    Если товар <> Неопределено Тогда
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ТиповойОстатки.Субконто1 КАК Субконто1,
        |    ТиповойОстатки.СуммаОстаток КАК СуммаОстаток,
        |    ТиповойОстатки.КоличествоОстаток КАК КоличествоОстаток
        |ИЗ
        |    РегистрБухгалтерии.Типовой.Остатки(&data, Счет В ИЕРАРХИИ (&СписСчетов), , Субконто2 = &sklad) КАК ТиповойОстатки
        |ГДЕ
        |    ТиповойОстатки.Субконто1 = &Субконто1";
    
    Запрос.УстановитьПараметр("data", КонецДня(ТекущаяДата()));
    Запрос.УстановитьПараметр("sklad", Справочники.Склады.НайтиПоКоду("000000001"));
    Запрос.УстановитьПараметр("СписСчетов", ПланыСчетов.Типовой.Запасы);
    Запрос.УстановитьПараметр("Субконто1", товар);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Остаток =ВыборкаДетальныеЗаписи.КоличествоОстаток
    КонецЦикла;
    КонецЕсли;
Возврат Остаток;
КонецФункции


добавил ее в процедуру при активации строки, при активации работает, но при открытии нет процедуры, не знаю куда еще вставить
1 ДенисЧ
 
03.02.22
11:49
Нужно в запрос динсписка пихать объединение с остатками.
2 ДенисЧ
 
03.02.22
11:49
И потом в список выводить это поле
Это же не ОФ.
3 RussellCrowe
 
03.02.22
12:13
(1) не пойму куда вставить вот список доступных процедур
https://ibb.co/H2wDG1v
4 RussellCrowe
 
03.02.22
12:19
(3) выводДанныхСписка пробовал добавить, не попадает

&НаСервере
Процедура ВыводДанныхСписка()
    
    Видимость = ЭСФСервер.ВедетсяУчетПоТоварамНаВС(ТекущаяДата());
    
    ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
        Элементы,
        "ПризнакПеречняИзьятий",
        "Видимость",
        Видимость);
    ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
        Элементы,
        "ПризнакУникальногоТовара",
        "Видимость",
        Видимость);
    ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
        Элементы,
        "ПризнакУчетаНаВиртуальномСкладе",
        "Видимость",
        Видимость);
    Если НЕ Видимость Тогда
        
        Список.ТекстЗапроса = "ВЫБРАТЬ
                              |    СправочникНоменклатура.Ссылка КАК Ссылка,
                              |    СправочникНоменклатура.ПометкаУдаления КАК ПометкаУдаления,
                              |    СправочникНоменклатура.Родитель КАК Родитель,
                              |    СправочникНоменклатура.ЭтоГруппа КАК ЭтоГруппа,
                              |    СправочникНоменклатура.Код КАК Код,
                              |    СправочникНоменклатура.Наименование КАК Наименование,
                              |    СправочникНоменклатура.Артикул КАК Артикул,
                              |    СправочникНоменклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения,
                              |    СправочникНоменклатура.ВидНДСПриИмпорте КАК ВидНДСПриИмпорте,
                              |    СправочникНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
                              |    СправочникНоменклатура.Комментарий КАК Комментарий,
                              |    СправочникНоменклатура.НаименованиеПолное КАК НаименованиеПолное,
                              |    СправочникНоменклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
                              |    СправочникНоменклатура.СтавкаНДС КАК СтавкаНДС,
                              |    СправочникНоменклатура.Услуга КАК Услуга,
                              |    СправочникНоменклатура.СтавкаАкциза КАК СтавкаАкциза,
                              |    СправочникНоменклатура.КодКПВЭД КАК КодКПВЭД,
                              |    СправочникНоменклатура.КоэффициентРасчетаОблагаемойБазыАкциза КАК КоэффициентРасчетаОблагаемойБазыАкциза,
                              |    СправочникНоменклатура.ВидПодакцизногоТМЗ КАК ВидПодакцизногоТМЗ,
                              |    СправочникНоменклатура.КодТНВЭД КАК КодТНВЭД,
                              |    СправочникНоменклатура.ИдентификаторТовараЭСФ КАК ИдентификаторТовараЭСФ,
                              |    СправочникНоменклатура.ДополнительныеРеквизиты.(
                              |        Ссылка КАК Ссылка,
                              |        НомерСтроки КАК НомерСтроки,
                              |        Свойство КАК Свойство,
                              |        Значение КАК Значение,
                              |        ТекстоваяСтрока КАК ТекстоваяСтрока
                              |    ) КАК ДополнительныеРеквизиты,
                              |    СправочникНоменклатура.Предопределенный КАК Предопределенный,
                              |    СправочникНоменклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных,
                              |    ВложенныйЗапрос.КоличествоОстаток КАК ОстатокТовара
                              |ИЗ
                              |    Справочник.Номенклатура КАК СправочникНоменклатура
                              |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                              |            ТиповойОстатки.КоличествоОстаток КАК КоличествоОстаток,
                              |            ТиповойОстатки.Субконто1 КАК Номенклатура
                              |        ИЗ
                              |            РегистрБухгалтерии.Типовой.Остатки КАК ТиповойОстатки) КАК ВложенныйЗапрос
                              |        ПО СправочникНоменклатура.Ссылка = ВложенныйЗапрос.Номенклатура";
        
    Иначе
            
        Поля = Новый Массив;
        Поля.Добавить("ПризнакУчетаНаВиртуальномСкладе");
        Поля.Добавить("ПризнакУникальногоТовара");
        Поля.Добавить("ПризнакПеречняИзьятий");
        
        Список.УстановитьОграниченияИспользованияВГруппировке(Поля);
        Список.УстановитьОграниченияИспользованияВОтборе(Поля);
        Список.УстановитьОграниченияИспользованияВПорядке(Поля);
            
    КонецЕсли;
    
КонецПроцедуры
5 Ёпрст
 
03.02.22
12:40
(3) в запрос динамического списка.
6 Ёпрст
 
03.02.22
12:42
Можешь еще и событие при получении данных на сервере использовать
https://wonderland.v8.1c.ru/blog/obrabotka-i-oformlenie-dannykh-dinamicheskogo-spiska/
7 RussellCrowe
 
03.02.22
13:23
(6) спасибо, добавил запрос и вывод в процедуру СписокПриПолученииДанныхНаСервере, помогло

&НаСервереБезКонтекста
Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ТиповойОстатки.Субконто1 КАК Субконто1,
    |    ТиповойОстатки.СуммаОстаток КАК СуммаОстаток,
    |    ТиповойОстатки.КоличествоОстаток КАК КоличествоОстаток
    |ИЗ
    |    РегистрБухгалтерии.Типовой.Остатки(, , , Субконто1 В (&Товары)) КАК ТиповойОстатки";
    Запрос.УстановитьПараметр("Товары", строки.получитьКлючи());
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        СтрокаСписка = Строки[ВыборкаДетальныеЗаписи.Субконто1];
        СтрокаСписка.Данные["ОстатокТовара"] = ВыборкаДетальныеЗаписи.КоличествоОстаток;
        //Остаток =ВыборкаДетальныеЗаписи.КоличествоОстаток
    КонецЦикла;
    
    ВССерверПереопределяемый.УстановитьПараметрыДинамическогоСпискаНоменклатуры(Строки);
    
КонецПроцедуры