Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Обработка ЗаказПоставщика в ТЧ есть реквизит с типом Булево

Обработка ЗаказПоставщика в ТЧ есть реквизит с типом Булево
Я
   DmitriiKr
 
24.11.20 - 09:57
Доброго времени суток. Застрял вроде на простом вопросе...не могу подтянуть реквизит табличной части в типом булево.

ТаблЗнач = ЭтотОбъект.ТЧ.Выгрузить();
ТаблЗначСв = ТаблЗнач.Скопировать();
ТаблЗначСв.Свернуть("Поставщик","");
Для Каждого СтрСв Из ТаблЗначСв Цикл

СтруктураПоиска = Новый Структура();
СтруктураПоиска.Вставить("Поставщик",СтрСв.Поставщик);
НайденныеСтроки = ТаблЗнач.НайтиСтроки(СтруктураПоиска);
Если НайденныеСтроки.Количество() > 0 Тогда


ДокументЗаказПоставщику = Документы.ЗаказПоставщику.СоздатьДокумент();
ДокументЗаказПоставщику.Дата = ТекущаяДата();
ДокументЗаказПоставщику.Контрагент = СтрСв.Поставщик;
ДокументЗаказПоставщику.Склад = Склад;

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Товары.Номенклатура КАК Номенклатура,
| СУММА(Товары.Количество) КАК Количество,
| Товары.Сумма КАК Сумма
|ПОМЕСТИТЬ Товары
|ИЗ
| Документ.ЗаказПокупателя.Товары КАК Товары
|ГДЕ
| Товары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
|
|СГРУППИРОВАТЬ ПО
| Товары.Номенклатура,
| Товары.Сумма
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура
|;
|
|////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
| Товары.Номенклатура КАК Номенклатура,
| ПРЕДСТАВЛЕНИЕССЫЛКИ(Товары.Номенклатура) КАК НоменклатураПредставление,
| Товары.Количество КАК Количество,
| ЕСТЬNULL(Остатки.КоличествоОстаток, 0) КАК Остаток,
| Товары.Сумма КАК Сумма,
| ЦеныПоставщиковСрезПоследних.Цены КАК Цены
|ИЗ
| Товары КАК Товары
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказанныеТовары.Остатки(
| ,
| Номенклатура В
| (ВЫБРАТЬ
| Товары.Номенклатура КАК Номенклатура
| ИЗ
| Товары КАК Товары)
| И Склад = &Склад) КАК Остатки
| ПО Товары.Номенклатура = Остатки.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК
ЦеныПоставщиковСрезПоследних
| ПО Товары.Номенклатура = ЦеныПоставщиковСрезПоследних.Номенклатура
|
|СГРУППИРОВАТЬ ПО
| Товары.Номенклатура.Поставщик,
| Товары.Номенклатура,
| Товары.Количество,
| Товары.Сумма,
| ЕСТЬNULL(Остатки.КоличествоОстаток, 0),
| ЦеныПоставщиковСрезПоследних.Цены";

Запрос.УстановитьПараметр("Дата1", ДатаНачала);
Запрос.УстановитьПараметр("Дата2", ДатаОкончания);
Запрос.УстановитьПараметр("Склад", Склад);
РезультатЗапроса = Запрос.Выполнить();

// 3. Обход результатов запроса
ВыборкаТовары = РезультатЗапроса.Выбрать();


Для Каждого строка Из НайденныеСтроки Цикл

Пока ВыборкаТовары.Следующий() Цикл

// 4. Проверка на достаточность товаров
Дефицит =ВыборкаТовары.Количество-(ВыборкаТовары.Остаток);

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

Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Товара уже заказан "+ строка.Номенклатура+" в количестве
"+ВыборкаТовары.Количество+" шт." + " на склад " + Склад;
Сообщение.Сообщить();

КонецЕсли;
КонецЦикла;

КонецЦикла;
Элементы.СозданиеЗаказаПотавщику.Доступность = Истина;

КонецЕсли;
КонецЦикла;

Может быть кто что подскажет?
 
 Партнерская программа EFSOL Oblako
   ДенисЧ
 
1 - 24.11.20 - 10:00
Вопроса и проблемы не вижу. Как и "реквизита типа булево"
   DmitriiKr
 
2 - 24.11.20 - 10:04
нСтроки = ЭтотОбъект.ТЧ.НайтиСтроки(Новый Структура("ВыборПокупки", Истина));
Для каждого текСтрока Из нСтроки Цикл


Пытался делать так в начале процедуры....
Но не идет.
   Kassern
 
3 - 24.11.20 - 10:13
(0)
1)Зачем 2 раза сподряд записываешь документ?
ДокументЗаказПоставщику.Записать();
ДокументЗаказПоставщику.Записать(РежимЗаписиДокумента.Проведение);
2)Зачем это делаешь еще и в цикле для каждой строчки?
3) Зачем запрос номенклатуры в цикле, у тебя даже параметры для запроса не зависят от элемента цикла?
И еще много много зачем....
   Kassern
 
4 - 24.11.20 - 10:15
(2) что не идет то? Какая ошибка? Проверь тип данных и ключ структуры. он должен совпадать с полем для отбора.
   DmitriiKr
 
5 - 24.11.20 - 10:33
Да там не ошибка выходит. Вот этим нСтроки = ЭтотОбъект.ТЧ.НайтиСтроки(Новый Структура("ВыборПокупки", Истина));
создал выборку структуры со строками в которых строка с реквизитом Булево = Истина.

А потом когда обхожу эту структуру и иду дальше по процедуре то записывается все что нашлось. т.е. Структура с реквизитом булево ни чего не решает.
   Kassern
 
6 - 24.11.20 - 11:28
(5) как ты обходишь "структуру", если НайтиСтроки возвращает массив строк... И куда записывается "все что нашлось"? Тут без ванги и 100 грамм вопрос явно не решить. Сформулируйте правильно вопрос и получите тогда адекватный ответ. Откройте СП и почитайте про метод НайтиСтроки. Проверьте тип поля ВыборПокупки в вашей ТЧ. Если все верно, то с данной структурой отбора в массиве строк будут все строки где поле ВыборПокупки = Истина.
   DmitriiKr
 
7 - 24.11.20 - 11:40
Обхожу структуру через:
Для каждого текСтрока Из нСтроки Цикл

Но так как у меня много циклов...я уже запутался в них.
Тип реквизита (ВыборПокупки) булево.

По Вашему совету вывел запрос из цикла, т.е. теперь запрос вышел из цикла и теперь код выглядит вот так:

ВыборкаТовары = РезультатЗапроса.Выбрать();
            
    ДокументЗаказПоставщику = Документы.ЗаказПоставщику.СоздатьДокумент();
    ДокументЗаказПоставщику.Дата = ТекущаяДата();
    ДокументЗаказПоставщику.Склад = Склад;
    
    ТаблЗнач = ЭтотОбъект.ТЧ.Выгрузить();
    ТаблЗначСв = ТаблЗнач.Скопировать();
    ТаблЗначСв.Свернуть("Поставщик","");
    Для Каждого СтрСв Из ТаблЗначСв Цикл
        
        СтруктураПоиска = Новый Структура();
        СтруктураПоиска.Вставить("Поставщик",СтрСв.Поставщик);
        НайденныеСтроки  = ТаблЗнач.НайтиСтроки(СтруктураПоиска);
        Если НайденныеСтроки.Количество() > 0 Тогда
            
            
            ДокументЗаказПоставщику.Контрагент = СтрСв.Поставщик;
            
            
            Для Каждого строка Из НайденныеСтроки Цикл
                
                                    
                Пока ВыборкаТовары.Следующий() Цикл  //МНЕ КАЖЕТСЯ ЧТО ВОТ СЮДА НУЖНО КУДАТО ДОБАВЛЯТЬ ОТБОР ПО БУЛЕВО.

                    

                    //  4. Проверка на достаточность товаров

                    Дефицит = ВыборкаТовары.Количество-(ВыборкаТовары.Остаток);
                    
                    Если Дефицит > 0 Тогда
                        НоваяСтрокаТЧДокумента = ДокументЗаказПоставщику.Товары.Добавить();
                        НоваяСтрокаТЧДокумента.Номенклатура = строка.Номенклатура;
                        НоваяСтрокаТЧДокумента.Сумма = ВыборкаТовары.Цены;
                        НоваяСтрокаТЧДокумента.Количество = Дефицит;
                        
                    Иначе 
                        
                        Сообщение = Новый СообщениеПользователю;
                        Сообщение.Текст = "Товара уже заказан "+ строка.Номенклатура+" в количестве 
                                                                  "+ВыборкаТовары.Количество+" шт." + " на склад " + Склад;
                        Сообщение.Сообщить();
                        
                    КонецЕсли;
                    
                КонецЦикла;
                
            КонецЦикла;
            Элементы.СозданиеЗаказаПотавщику.Доступность = Истина;
            
        КонецЕсли;
    КонецЦикла;
     ДокументЗаказПоставщику.Записать(РежимЗаписиДокумента.Проведение);
   ZDenis
 
8 - 24.11.20 - 11:51
(7) Задача в чем?
По твоему коду создается 1 документ Заказа и потом в нем много раз меняется контрагент, а дальше вообще не понять что происходит, да еще и в цикле.
   Kassern
 
9 - 24.11.20 - 12:03
(7) 100 грамм еще не принял, но попробую вангануть. Вы пытаетесь создать документ и заполнить его ТЧ программно. Для этого у вас есть ТЧ с отмеченными строчками и именно их необходимо перенести в документ и для них получить цену с количеством. Нужно сделать всего 1 запрос и вызвать его 1 раз! Для этого Вы можете поступить 2 способами
1) Получить массив номенклатуры, которую отменили и в условии запроса указать, что Номенклатура В (&МассивНоменклатуры).
2) Создать виртуальую таблицу с полями номенклатура (можно добавить еще поля из ТЧ, чтобы ими потом заполнить документ). Далее делать левое соединение с данной таблицей с ценами и остатками.
Когда результат запроса готов, можете в цикле его обойти и с помощью ЗаполнитьЗначениеСвойств(НовСтрока,Выборка) заполнить новую строку ТЧ создаваемого документа. После цикла уже записываете данный документ.
   Kassern
 
10 - 24.11.20 - 12:03
(9) *1) которую отмеТили
   DmitriiKr
 
11 - 24.11.20 - 12:10
Задача вот какая:

1. Есть документы ЗаказПокупателя за какйото промежуток времени их может быть несколько, а так же каждом заказе есть несколько номенклатур с одинаковым поставщиком.
2. Нужно создать заказПоставщику что бы создавался один документ в который попадет только та номенклатура у которой одинаковый поставщик. С этим вроде как справился.
3. А теперь еще вот какая задачка: должна быть возможность выбора только тех позиций которые нужно заказать (Как раз реквизит в ТЧ создан с типом булево). И вот я ни как не могу понять куда мне нужно запихать эту хрень.
Запутался с этими циклами.
   ZDenis
 
12 - 24.11.20 - 12:14
(11) "И вот я ни как не могу понять куда мне нужно запихать эту хрень".
В первоначальный запрос, там где ты отбираешь номенклатуру и поставщиков из документа ЗаказПокупателя
   DmitriiKr
 
13 - 24.11.20 - 12:17
Т.е. мне получается не нужна структура которая сворачивает сторки по поставщику?
   Kassern
 
14 - 24.11.20 - 12:18
(13) Я правильно понимаю, в заказе могут быть позиции от разных поставщиков? В этом случае на каждого поставщика должен создаться свой документ так?
   DmitriiKr
 
15 - 24.11.20 - 12:20
Да в заказеПокупателя может быть одна номенклатура с одним поставщиком, другая с другим, потом другой документ там могут быть опять другие...
   ZDenis
 
16 - 24.11.20 - 12:20
(13) Тебе по факту надо создать столько заказав, сколько поставщиков. А у тебя сейчас только на единственного поставщика создается документ. Поэтому сразу в первом запросе, где отбираются заказы и группируй по поставщикам и номенклатуре с отбором по нужным (у тех которые Истина в нужном месте)
   Kassern
 
17 - 24.11.20 - 12:24
(14) Вообще это все дело решается в одном запросе. Просто делаешь итоги по поставщику и далее:
ВыборкаПоставщик=Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаПоставщик.Следующий() Цикл
         Док=Документы.ТвойДок.СоздатьДокумент();
         Док.Поставщик=ВыборкаПоставщик.Поставшик;
         ЗапполняемРеквизитыДок(Док);
         ВыборкаНоменклатуры=ВыборкаПоставщик.Выбрать();
         Пока ВыборкаНоменклатуры.Следующий() Цикл
            НовСтрока=Док.ТЧ.Добавить();
            ЗаполнитьЗначенияСвойств(НовСтрока,ВыборкаНоменклатуры);
         КонецЦикла;
         Док.Записать(РежимЗаписиДокумента.Проведение);
    КонецЦикла;
   Kassern
 
18 - 24.11.20 - 12:30
(17)В запросе получаем ТЧ заказов за период в первом пакете с отбором ЧТ.ВыборПокупки=Истина, далее прикручиваем к полученной таблице цены и остаток. В итоговом запросе группируем итоги по поставщику.
   DmitriiKr
 
19 - 24.11.20 - 12:36
"ВЫБРАТЬ
    |    Товары.Номенклатура КАК Номенклатура,
    |    СУММА(Товары.Количество) КАК Количество,
    |    Товары.Сумма КАК Сумма,
    |    Товары.Номенклатура.Поставщик КАК НоменклатураПоставщик    // добавляем поставщика в запрос (первый запрос)

    |ПОМЕСТИТЬ Товары
    |ИЗ
    |    Документ.ЗаказПокупателя.Товары КАК Товары
    |ГДЕ
    |    Товары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
    |
    |СГРУППИРОВАТЬ ПО
    |    Товары.Номенклатура,
    |    Товары.Сумма,
    |    Товары.Номенклатура.Поставщик
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    Номенклатура
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ
    |    Товары.Номенклатура КАК Номенклатура,
    |    ПРЕДСТАВЛЕНИЕССЫЛКИ(Товары.Номенклатура) КАК НоменклатураПредставление,
    |    Товары.Количество КАК Количество,
    |    ЕСТЬNULL(Остатки.КоличествоОстаток, 0) КАК Остаток,
    |    Товары.Сумма КАК Сумма,
    |    ЦеныПоставщиковСрезПоследних.Цены КАК Цены
    |ИЗ
    |    Товары КАК Товары
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказанныеТовары.Остатки(
    |                ,
    |                Номенклатура В
    |                        (ВЫБРАТЬ
    |                            Товары.Номенклатура КАК Номенклатура
    |                        ИЗ
    |                            Товары КАК Товары)
    |                    И Склад = &Склад) КАК Остатки
    |        ПО Товары.Номенклатура = Остатки.Номенклатура
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК ЦеныПоставщиковСрезПоследних
    |        ПО Товары.Номенклатура = ЦеныПоставщиковСрезПоследних.Номенклатура
    |
    |СГРУППИРОВАТЬ ПО
    |    Товары.Номенклатура.Поставщик,                                      // тут сгрупировали по поставщику.

    |    Товары.Номенклатура,
    |    Товары.Количество,
    |    Товары.Сумма,
    |    ЕСТЬNULL(Остатки.КоличествоОстаток, 0),
    |    ЦеныПоставщиковСрезПоследних.Цены"


ну дальше устанавливаем параметры...

ВыборкаПоставщик=Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаПоставщик.Следующий() Цикл
         Док=Документы.ЗаказПоставщику.СоздатьДокумент();
         Док.Поставщик=ВыборкаПоставщик.Поставшик;
         ЗапполняемРеквизитыДок(Док);                        //Вот это не понятно??

         ВыборкаНоменклатуры=ВыборкаПоставщик.Выбрать();
         Пока ВыборкаНоменклатуры.Следующий() Цикл
            НовСтрока=Док.ТЧ.Добавить();
            ЗаполнитьЗначенияСвойств(НовСтрока,ВыборкаНоменклатуры);
         КонецЦикла;
         Док.Записать(РежимЗаписиДокумента.Проведение);
    КонецЦикла;
   ZDenis
 
20 - 24.11.20 - 12:49
(19) В первом запросе убери сумму, она тебе не нужна и добавь в условие после (Товары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2) И (Товары.ТвойРеквизитСБулевом)
   Kassern
 
21 - 24.11.20 - 12:52
(19) не понятно, как заполнять реквизиты документа? Вам ведь нужно дату указать, поставщика, скорее всего договор, валюту, курс, кратность и т.д. Чтобы это дело не расписывать я написал просто ЗапполняемРеквизитыДок(Док);
   DmitriiKr
 
22 - 24.11.20 - 12:56
Ну да заполнить шапку документа это я понял уже.

ВыборкаПоставщик=Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаПоставщик.Следующий() Цикл
         Док=Документы.ЗаказПоставщику.СоздатьДокумент();
         Док.Контрагент=ВыборкаПоставщик.НоменклатураПоставщик;
                 Док.Дата = ТекущаяДата();
                 Док.Склад = Склад;
                 ВыборкаНоменклатуры=ВыборкаПоставщик.Выбрать();
         Пока ВыборкаНоменклатуры.Следующий() Цикл
            НовСтрока=Док.ТЧ.Добавить();
            НовСтрока.Номенклатура = ВыборкаНоменклатуры.Номенклатура;
                        НовСтрока.Сумма = ВыборкаНоменклатуры.Цены;
                        НовСтрока.Количество = ВыборкаНоменклатуры.Количество;
         КонецЦикла;
         Док.Записать(РежимЗаписиДокумента.Проведение);
    КонецЦикла;

Только вот создаются столько документов сколько их нашлось в табличной части.
   ZDenis
 
23 - 24.11.20 - 12:56
+21 Если делаешь запрос по документу, то желательно добавлять условие на Проведен, иначе попадут и удаленные и не проведенные
   ZDenis
 
24 - 24.11.20 - 12:57
(22) потому что у тебя группировка по сумме, убрал?
   DmitriiKr
 
25 - 24.11.20 - 12:57
А в запрос добавить Товары.РеквизитСБулево не получается....Это реквизит на форме.
   Kassern
 
26 - 24.11.20 - 13:00
(19) А где итоги то? Должно быть в  конце запроса
|ИТОГИ ПО
|Номенклатура.Поставщик ";
   DmitriiKr
 
27 - 24.11.20 - 13:01
"ВЫБРАТЬ
    |    Товары.Номенклатура КАК Номенклатура,
    |    Товары.Количество КАК Количество,
    |    Товары.Номенклатура.Поставщик КАК НоменклатураПоставщик
    |ПОМЕСТИТЬ Товары
    |ИЗ
    |    Документ.ЗаказПокупателя.Товары КАК Товары
    |ГДЕ
    |    Товары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    Номенклатура
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

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

Вот... Теперь правда ТЧ не заполняется))))
   ZDenis
 
28 - 24.11.20 - 13:02
(25) "3. А теперь еще вот какая задачка: должна быть возможность выбора только тех позиций которые нужно заказать".
В каком документе это все указывается? Я думал в заказе
   Kassern
 
29 - 24.11.20 - 13:03
(25) блин какой бред, почему признак Выбор покупки вы в базу не записываете? Каждый раз при открытии заказа заставляете проставлять галочки?
   ZDenis
 
30 - 24.11.20 - 13:03
(27) Куда в первом запросе группировки пропали?
 
 
   DmitriiKr
 
31 - 24.11.20 - 13:04
Спасибо.

Ну вот так хочет руководитель.

Так получилось создать один документ ЗаказПоставщика (с одинаковым поставщиком)
А вот с Булевом так и не понял
   DmitriiKr
 
32 - 24.11.20 - 13:05
А в первом запросе группировки должны быть по количеству, номенклатуре и количеству?
   ZDenis
 
33 - 24.11.20 - 13:07
(32) У тебя было правильно по номенклатуре и поставщику. Сумму надо было убрать (и из группировок и из выбора)
   DmitriiKr
 
34 - 24.11.20 - 13:08
"ВЫБРАТЬ
    |    Товары.Номенклатура КАК Номенклатура,
    |    СУММА(Товары.Количество) КАК Количество,
    |    Товары.Номенклатура.Поставщик КАК НоменклатураПоставщик
    |ПОМЕСТИТЬ Товары
    |ИЗ
    |    Документ.ЗаказПокупателя.Товары КАК Товары
    |ГДЕ
    |    Товары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
    |
    |СГРУППИРОВАТЬ ПО
    |    Товары.Номенклатура,
    |    Товары.Номенклатура.Поставщик
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    Номенклатура
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ
    |    Товары.Номенклатура КАК Номенклатура,
    |    ПРЕДСТАВЛЕНИЕССЫЛКИ(Товары.Номенклатура) КАК НоменклатураПредставление,
    |    Товары.Количество КАК Количество,
    |    ЕСТЬNULL(Остатки.КоличествоОстаток, 0) КАК Остаток,
    |    ЦеныПоставщиковСрезПоследних.Цены КАК Цены,
    |    Товары.НоменклатураПоставщик КАК НоменклатураПоставщик
    |ИЗ
    |    Товары КАК Товары
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказанныеТовары.Остатки(
    |                ,
    |                Номенклатура В
    |                        (ВЫБРАТЬ
    |                            Товары.Номенклатура КАК Номенклатура
    |                        ИЗ
    |                            Товары КАК Товары)
    |                    И Склад = &Склад) КАК Остатки
    |        ПО Товары.Номенклатура = Остатки.Номенклатура
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК ЦеныПоставщиковСрезПоследних
    |        ПО Товары.Номенклатура = ЦеныПоставщиковСрезПоследних.Номенклатура
    |ИТОГИ ПО
    |    НоменклатураПоставщик"


Вот так получается. создается один документ и он суммирует по количеству и по номенклатуре.
   DmitriiKr
 
35 - 24.11.20 - 13:09
А вот с Булево хрень.....
Может через структуру сделать будет правильно???
   Kassern
 
36 - 24.11.20 - 13:09
(31) Вобщем я умываю руки...Это просто бесполезно. Изучите итоги запросов и обход результата по группировкам. Добавьте реквизит ВыборПокупки в ТЧ заказа покупателя. Чтобы этот выбор хранился в базе. Если вы сделаете все что я написал в (17) (18)  все у вас получится, в противном случае - наймите специалиста.
   ZDenis
 
37 - 24.11.20 - 13:16
(35) Если данные по нужным позициям не хранятся в базе, то и брать их не откуда.
   DmitriiKr
 
38 - 24.11.20 - 13:17
Понял, ща попробую добавить реквизит в ТЧ ЗаказПокупателя. Спасибо Вам большое.


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.