Имя: Пароль:
1C
1С v8
Печать ценников нового товара
0 Chuchi
 
20.06.13
16:31
УТ 10.3
требуется распечатать ценники для товара которого на складе =0
из документа поступления, до момента его проведения...
ну чтобы сотрудники знали что товар которого не было в наличии пришел и его надо выложить на витрину раз по нему распечатался ценник
...
мм или умные люди это как то по другому делают?
1 Slon747
 
20.06.13
16:58
(0) левое связывание документа с остатками, где остаток is null или < 0
2 Chuchi
 
23.06.13
22:59
я вот так попробовала
Для Каждого Строка Из Товары Цикл
       Номенклатура = Строка.Номенклатура;
       Печать = Строка.Печать;
 
         
           ЗапросОстатки = Новый Запрос;
       
           ЗапросОстатки.Текст =
           "ВЫБРАТЬ
           |    ТоварыОстатки.КоличествоОстаток КАК Количество
           |ИЗ
           |    РегистрНакопления.ТоварыНаСкладах.Остатки(Номенклатура = &Номенклатура) КАК ТоварыОстатки";
     
           ЗапросОстатки.УстановитьПараметр("Номенклатура", Номенклатура);
       

           Результат = ЗапросОстатки.Выполнить().Выбрать();
           Результат.Следующий();
           Если Результат.Количество <> null Тогда
           
               
               Если Результат.Количество =0 Тогда
                 Печать = Истина;
                 
                   Иначе
                       Сообщить("Товар: " + "'" + Номенклатура + "'" + "    остаток: " + Результат.Количество);
               КонецЕсли;        
           Иначе
               Печать = Истина;

           КонецЕсли;
       
     
   КонецЦикла;
а ругается
по причине:
{(4, 60)}: Неверные параметры "РегистрНакопления.ТоварыНаСкладах.Остатки, 0"
РегистрНакопления.ТоварыНаСкладах.Остатки(Номенклатура <<?>>= &Номенклатура) КАК ТоварыОстатки


проверяла отладчиком номенклатура определяется... почему не уходит в запрос?
3 mikecool
 
23.06.13
23:11
(2)
1) не в то место вставила
2) не делай запрос в цикле
4 mikecool
 
23.06.13
23:11
+3 глаза уже видели, пора расширять кругозор
5 Chuchi
 
23.06.13
23:23
пока не знаю как делать не в цикле,
нашла причину ошибки - не поставила запятую перед Остатки(Номенклатура = &Номенклатура)
запрос пробегает но количество каждый раз =0... ((( что делать?
6 zladenuw
 
23.06.13
23:27
(5) а не проще в обрабоке печати ценников. скопировать алгоритм только с остатками и заменить условие
и вывести свой флаг
   |ГДЕ
       |    ЕСТЬNULL(НаСкладе.Количество, 0) = 0
       |";

?
7 Chuchi
 
23.06.13
23:31
(6) это я этот запрос поставила в эту самую обработку
далее по кнопке должны выставиться флаги печати
что тоже почему то не выходит даже если исключить проверку на количество
мне условие на NULL как надо поставить?
8 Chuchi
 
23.06.13
23:34
А ! наверно поняла) там есть галочка выводить только имеющиеся в наличии... сейчас попробую использовать этот код
9 Chuchi
 
23.06.13
23:41
мм... а как мне отсортировать тогда с помощью этого кода тот список номенклатуры который передается из документа переоценки ( из которого буду печатать ценники)
10 Chuchi
 
23.06.13
23:42
и чтобы других позиций не добавлялось а участвовал только тот товар который будет в документе поступления?
11 zladenuw
 
23.06.13
23:46
(10) в отбор передавай свой список номенклатуры с документа переоценки который выбрал пользователь в обработке печать ценников. нарисуй свою кнопку с вызовом формы выбора и помещай значений номенклатуры в список значений
12 Chuchi
 
24.06.13
00:04
т.е. в табличке отбора надо сделать доп поле в котором будет указан мой документ? как это сделать?
кнопку сделала
13 Chuchi
 
24.06.13
00:09
нашла что в строку номенклатуры в отборе можно сразу несколько позиций передать. новый вопрос как их передать из документа в этот отбор?
14 Chuchi
 
24.06.13
00:22
) Закинула в список отбора всю номенклатуру)
15 Chuchi
 
24.06.13
10:44
Если позволите теперь новый вопрос но продолжая эту тему..
как можно сравнить две табличные части из разных обработок печати ценников чтобы в одной из них удалялись строки которые дублируются во второй
16 FIXXXL
 
24.06.13
13:36
(15) из каких разных обработок?
17 Slon747
 
25.06.13
12:40
По задаче в (0)

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

Запрос.УстановитьПараметр("Ссылка",  Ссылка);
Запрос.УстановитьПараметр("ДатаКон", Новый Граница(ДокументСсылка, ВидГраницы.Исключая);

Проверяем на меньше 0, т.к. могут быть отрицат. остатки
P.S. Можно еще в параметры вирт. таблицы добавить условие на номенклатуру из документа
18 Slon747
 
25.06.13
12:42
(15) Самое простое - функцией НайтиСтроки(). Но думаю, это вам не нужно
Основная теорема систематики: Новые системы плодят новые проблемы.