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

Проверка остатков на складе перед проведением

Автор Diakon, 15 мар 2012, 13:06

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

cska-fanat-kz

И что вы нас все спрашиваете?
Запускаете под Предприятием и сами пытаетесь "сломать" свою конфигу - т.е. задаете ей различные варианты исходных данных и смотрите результат.....
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Diakon

Приношу свои извинения за назойливость. Я тероризирую конфиг с нуля. Я выполнил левое соединение. Прошу скажите, верно ли такое соединение? Как я понимаю мне нужно из регистра отобрать только те значения, которые я использую  в документе.
Запрос = Новый Запрос("ВЫБРАТЬ
                         |   ТоварыНаСкладеОстатки.Наименование,
                         |   ТоварыНаСкладеОстатки.КоличествоОстаток,
                         |   РасходнаяНакладнаяРасходнаяНакладнаяТЧ.Наименование КАК НаименованиеПоДок
                         |ИЗ
                         |   Документ.РасходнаяНакладная.РасходнаяНакладнаяТЧ КАК РасходнаяНакладнаяРасходнаяНакладнаяТЧ
                         |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладе.Остатки(, ) КАК ТоварыНаСкладеОстатки
                         |      ПО ТоварыНаСкладеОстатки.Наименование = РасходнаяНакладнаяРасходнаяНакладнаяТЧ.Наименование
                         |ГДЕ
                         |   ТоварыНаСкладеОстатки.КоличествоОстаток < 0"
   );

Еещ раз спасибо, за терпение

cska-fanat-kz

Должно быть примерно так:


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

   Запрос.УстановитьПараметр("Ссылка", Ссылка);
   Запрос.УстановитьПараметр("Услуга", Перечисления.ВидыНоменклатуры.Услуга);

   Результат = Запрос.Выполнить();

   Если НЕ Результат.Пустой() Тогда
   
      Отказ = ИСТИНА;
      
      ВыборкаДетальныеЗаписи = Результат.Выбрать();

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

Diakon


Теги:

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

Рейтинг@Mail.ru

Поиск