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

Процедура ПОдобратьПартии

Автор Chuchi, 18 апр 2011, 11:30

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

Chuchi

Вообщем то не передаются наверно
у меня в обрабротчике созданы поля
Организация1
Организация2 (резервный склад)
Контрагент1
И табличное поле (номенклатура, количество)

Соответственно здесь выбранной номенклатуре надо найти количество по скаладм и сверить с этим количеством запрашиваемое

Chuchi

Klyacksa ОЧЕНЬ ПРОШУ ВАС Обратить внимание ко мне в темку..
У меня есть РегистрНакоплений ОстаткиМатериалов, как мне из него извлечь только те п.Номенклатуры которые будут указаны в форме ОБРАБОТЧИКА!?

Chuchi

( так и не выходит исправить этот запрос

Klyacksa

Давайте разбираться :)

Если есть работающий код для документа и перечень Номенклатуры, по которому нужно произвести все эти действия, значит нужно в приведенный код подставить этот список Номенклатуры, вместо Номенклатуры из тч документа, всего-то делов :)
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Chuchi

Вот какая штука получается (( по коду

Процедура ОсновныеДействияФормыОсновныеДействияФормыСохранить(Кнопка)

Запрос = Новый Запрос;

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

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

    ВыборкаРезультатаЗапроса.Следующий();
    Остаток1 = ?(ВыборкаРезультатаЗапроса.ОбщееКоличество = NULL , 0,
ВыборкаРезультатаЗапроса.ОстаткиПервые);
Если ВыборкаРезультатаЗапроса.Количество > Остаток1 Тогда;
Разница= (ВыборкаРезультатаЗапроса.Количество - Остаток1);
ВыборкаРезультатаЗапроса.Следующий();
    Остаток2 = ?(ВыборкаРезультатаЗапроса.ОбщееКоличество = NULL , 0,
ВыборкаРезультатаЗапроса.ОстаткиВторые);
           
Если  Остаток2 >= Разница Тогда
Сообщить ("Списано с первого склада " + Остаток1 + " со второго склада " + Разница);
Иначе
Сообщить ("Не хватает товара! Остаток на складе1 " + Остаток1 + " Остаток на складе втором " + Остаток2);
КонецЕсли;
//КонецЕсли;
  Иначе
      Сообщить ("Списано с первого склада " + ВыборкаРезультатаЗапроса.Количество);
КонецЕсли
//КонецЦикла;

КонецПроцедуры



не пропускает строки
Запрос.УстановитьПараметр("МоментВремени", МоментВремени()); 
и я не вполне понимаю как тогда Номенклатуру из табличногоПоля Товары присвоить в качестве параметра..
Помогите пожалуйста

Klyacksa

Сейчас как таблица называется? Если, например, "табНоменклатура", то подставляем:
Запрос.УстановитьПараметр("СписокНоменклатрыДокумента",табНоменклатура.ВыгрузитьКолонку("Номенклатура"));


А с МоментВремени() что? Что говорит?
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Chuchi

Процедура или функция с указанным именем не определена (МоментВремени)
  Запрос.УстановитьПараметр("МоментВремени", <<?>>МоментВремени()); (Проверка: Толстый клиент (обычное приложение))


Но у меня и в документе моменты времени вроде не задавались но там все проходило

Klyacksa

Я с особенностями 8.2 не очень пока занималась. Попробуйте вместо МоментВремени() передать ТекущаяДата().

А лучше подождем кого-нибудь, кто подскажет по 8.2 :)
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

cska-fanat-kz

А причем здесь 8.2?

В случае с "МоментВремени()" попробуйте поменять на

Ссылка.МоментВремени()

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

Chuchi

У меня не должно ссылаться на документ, т.к его просто нет, сразу на автозапуске  обработка с формой, по действию с которой будут формироваться ПЕЧАТНЫЕ формы торг12 и счет фактура

Теги:

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

Рейтинг@Mail.ru

Поиск