Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
11 Дек 2017, 18:20
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Создание запроса  (Прочитано 1742 раз)

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

Оффлайн avgurello

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-11-29
  • Сайт: 
  • Профессия: Бухгалтер
Начинающий...
Изучаю основы 1С.v8.1
Пишу запрос в модуле Объекта  «ОтпускМатериалаМастеру»
Цель: При проведении документа, должен проверяться остаток материалов по ЦентрамОтветственности и если материала недостаточно в каком- то центре, то программа должна выдать сообщении об отсутствии затребованного количества материала и предложить недостающий материал списать с другого центра, имеющего его в наличии.
Ans_1.JPG Ans_1_1.JPG
 
Написал Запрос:
Процедура ОбработкаПроведения(Отказ, Режим)
                Запрос=Новый Запрос;
                Если Режим=РежимПроведенияДокумента.Оперативный Тогда
                               Запрос.Текст=
"ВЫБРАТЬ
|             ОстаткиМатериаловОстатки.Номенклатура,
|             ОстаткиМатериаловОстатки.Номенклатура КАК ВидМатериала,
|             ОстаткиМатериаловОстатки.КоличествоОстаток,
|             ОстаткиМатериаловОстатки.СуммаОстаток,
|             ОтпускМатериаловМастеру.Материалы.(
|                             Номенклатура,
|                             Количество,
|                             Сумма
|             ),
|             ОстаткиМатериаловОстаткиПоЦентрамОтветственности.КоличествоОстаток КАК КоличествоПоМол
|ИЗ
|             Документ.ОтпускМатериаловМастеру КАК ОтпускМатериаловМастеру
|                             ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Номенклатура В (&МатериалыДокумента)) КАК ОстаткиМатериаловОстатки
|                             ПО ОтпускМатериаловМастеру.Материалы.Номенклатура = ОстаткиМатериаловОстатки.КоличествоОстаток
|                             ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
|                                                            &МоментВремени,
|                                                            Номенклатура В (&МатериалыДокумента)
|                                                                            И ЦентрОтветственности = &ЦентрОтветственностиВДокументе) КАК ОстаткиМатериаловОстаткиПоЦентрамОтветственности
|                             ПО ОтпускМатериаловМастеру.Материалы.Номенклатура = ОстаткиМатериаловОстаткиПоЦентрамОтветственности.КоличествоОстаток
|ГДЕ
|             ОтпускМатериаловМастеру.Материалы.Номенклатура = &Номенклатура
|ДЛЯ ИЗМЕНЕНИЯ
|             РегистрНакопления.ОстаткиМатериалов.Остатки";
Иначе
Запрос.Текст=
    "ВЫБРАТЬ
 |            ОтпускМатериаловМастеру.Материалы.(
 |                            Количество,
 |                            Сумма,
 |                            Номенклатура,
 |                            ),
 |                            ОстаткиМатериаловОстаткиПоЦентрамОтветственности.КоличествоОстаток КАК КоличествоПоМол
 |ИЗ
 |            Документ.ОтпускМатериаловМастеру КАК ОтпускМатериаловМастеру
 |                            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Номенклатура В (&МатериалыДокумента)) КАК ОстаткиМатериаловОстатки
 |                            ПО ОтпускМатериаловМастеру.Материалы.Номенклатура = ОстаткиМатериаловОстатки.КоличествоОстаток                                       
 |                            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Номенклатура В (&МатериалыДокумента)) КАК ОстаткиМатериаловОстаткиПоЦентрамОтветственности
 |                            ПО ОтпускМатериаловМастеру.Материалы.Номенклатура = ОстаткиМатериаловОстаткиПоЦентрамОтветственности.КоличествоОстаток
 |ГДЕ
 |            ОтпускМатериаловМастеру.Материалы.Номенклатура = &МатериалыДокумента
|ДЛЯ ИЗМЕНЕНИЯ
 |            РегистрНакопления.ОстаткиМатериалов.Остатки";
  КонецЕсли;
 Запрос.УстановитьПараметр("ОтветственныйСотрудникВДокументе",ОтветственныйСотрудник);
 Запрос.УстановитьПараметр("МоментВремени",МоментВремени());
Запрос.УстановитьПараметр("МатериалыДокумента",Материалы.ВыгрузитьКолонку("Номенклатура"));
Запрос.УстановитьПараметр("Ссылка",Ссылка);
ВыборкаРезультатаЗапроса=Запрос.Выполнить().Выбрать();
Пока ВыборкаРезультатаЗапроса.Следующий()Цикл
                // Проверяем остаток при оперативном проведении
                Если Режим=РежимПроведенияДокумента.Оперативный Тогда
                               Если ВыборкаРезультатаЗапроса.Материалы.Номенклатура=КоличествоПоМол Тогда
                                               Остаток=?(ВыборкаРезультатаЗапроса.КоличествоПоМол=Null,
                                               0,ВыборкаРезультатаЗапроса.КоличествоПоМол);
                                               Если Остаток<ВыборкаРезультатаЗапроса.КоличествоПоМол Тогда
Сообщить("Материала"+СокрЛП(ВыборкаРезультатаЗапроса.КоличествоПоМол)+"имеется только"+Остаток);
                Отказ=Истина;
                Возврат;
                   КонецЕсли;
                               КонецЕсли;
                                  КонецЕсли;
                                    КонецЦикла;             
                КонецПроцедуры
При попытке отладки пишет не определена переменная КоличествоПоМол
Что я делаю не правильно???


Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Re: Создание запроса
« Ответ #1: 07 Ноя 2012, 09:39 »
При попытке отладки пишет не определена переменная КоличествоПоМол
А она у вас определена, переменная то?
Есть у вас такая строка
Если ВыборкаРезультатаЗапроса.Материалы.Номенклатура=КоличествоПоМол Тогда
до момента ее вызова не вижу определения переменной КоличествоПоМол

Оффлайн Public_enemy

  • **
  • Сообщений: 52
  • РЕПУТАЦИЯ: 6
  • КПД: 12%
  • Регистрация: 2011-10-13
  • Сайт: www.alliancesystems.ru
  • Профессия: Программист 1С
Re: Создание запроса
« Ответ #2: 07 Ноя 2012, 09:46 »
Ваша ошибка в этом выражении:
Если ВыборкаРезультатаЗапроса.Материалы.Номенклатура=КоличествоПоМол Тогда
Переменная КоличествоПоМол ранее нигде неопределенна. Если вы хотите сравнить с остатками из результата запроса, тогда
должно быть так:
Если ВыборкаРезультатаЗапроса.Материалы.Номенклатура = ВыборкаРезультатаЗапроса.КоличествоПоМол Тогда
и непонятно зачем вы сравниваете номенклатуру с количеством
Наверно выражение должно иметь такой вид:
Если ВыборкаРезультатаЗапроса.Материалы.Количество = ВыборкаРезультатаЗапроса.КоличествоПоМол Тогда


Теги:
 

Из запроса не выводятся значения полей - выводятся пустые значения

Автор Alex1111Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 24
Просмотров: 12185
Последний ответ 14 Июн 2012, 17:44
от Alex1111
Программное создание документа на основании документа

Автор GolickoffРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 4455
Последний ответ 23 Апр 2015, 08:45
от Golickoff
Автоматическое создание " Заполнение" документа

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 4437
Последний ответ 06 Мар 2014, 14:48
от mashencev_anton
Создание отчета "Отсутствие заказов"

Автор dronspartak9@gmail.comРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3867
Последний ответ 16 Апр 2014, 15:09
от dronspartak9@gmail.com
Создание заказаов на производство на основании заказа на производство.

Автор Елена1986Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 20
Просмотров: 7818
Последний ответ 09 Сен 2015, 13:01
от Елена1986

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
163 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
56 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
35 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
28 Сообщений
BuhRust
27 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 487
  • Точка Скрытых: 0
  • Точка Пользователей: 6
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal