Есть некий справочник с номенклатурой и Регистр накопления " Товары на складах" с измерениями: Склад,Номенклатура; ресурс: Количество.
Необходимо реализовать механизм перемещения номенклатуры между складами посредством документа "Перемещение товара". Склады определяются в документе с помощью реквизитов "Склад отправитель" и "Склад получатель". Данный документ регистрирует изменение складских остатков и так же в нём должен быть реализован контроль остатков.
Подскажите пожалуйста подробно,как с помощью конструктора запроса в Обработке проведения это реализовать?
Необходимо реализовать механизм перемещения номенклатуры между складами посредством документа "Перемещение товара". Склады определяются в документе с помощью реквизитов "Склад отправитель" и "Склад получатель". Данный документ регистрирует изменение складских остатков и так же в нём должен быть реализован контроль остатков.
Подскажите пожалуйста подробно,как с помощью конструктора запроса в Обработке проведения это реализовать?
По теме из базы знаний
Найденные решения
(17) вот, изучай
нашел 3 грубых ошибки (и это даже не текст запроса, хотя там тоже не хватало полей)
нашел 3 грубых ошибки (и это даже не текст запроса, хотя там тоже не хватало полей)
Прикрепленные файлы:
tovari3.dt
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) курс чистова посмотрите, да или публикации на эту тему..
в конце концов, ответы на билеты по подготовке к экзаменам на спеца.
Совершенно точно, данный вопрос относится к разряду учебных, и разжеван много раз...в различных вариациях (например сделать реализацию товаров с контролем остатка на складе). Совершенно точно у чистова есть и публикации подробные, есть и вебинар в нескольких частях, где также доходит до момента создания документа, с движениями и контролем остатков.
Ваша постановка вопроса, такова - что вам требуется курс пройти учебный, и попрактиковаться..а на форуме, мягко говоря, можно лишь пофлудить, ну или подсказать что-то конкретное.
в конце концов, ответы на билеты по подготовке к экзаменам на спеца.
Совершенно точно, данный вопрос относится к разряду учебных, и разжеван много раз...в различных вариациях (например сделать реализацию товаров с контролем остатка на складе). Совершенно точно у чистова есть и публикации подробные, есть и вебинар в нескольких частях, где также доходит до момента создания документа, с движениями и контролем остатков.
Ваша постановка вопроса, такова - что вам требуется курс пройти учебный, и попрактиковаться..а на форуме, мягко говоря, можно лишь пофлудить, ну или подсказать что-то конкретное.
Приход и расход получилось реализовать, но сообщение с остатками так и не выводит...
(3)
(3)
Процедура ОбработкаПроведения(Отказ, Режим)
Запрос = Новый Запрос ("ВЫБРАТЬ
| Товары.Ссылка КАК Регистратор,
| Товары.Ссылка.Дата КАК Период,
| Товары.Ссылка.СкладПолучатель КАК Склад,
| Товары.Номенклатура КАК Номенклатура,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
| Товары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| Товары.Количество КАК Количество,
| Товары.СерияНоменклатуры КАК СерияНоменклатуры,
| Товары.Цена КАК Цена
|ИЗ
| Документ.ПеремещениеТовара.Номенклатура КАК Товары
|ГДЕ
| Товары.Ссылка = &Ссылка
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Товары.Ссылка,
| Товары.Ссылка.Дата,
| Товары.Ссылка.СкладОтправитель,
| Товары.Номенклатура,
| ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход),
| Товары.ХарактеристикаНоменклатуры,
| Товары.Количество,
| Товары.СерияНоменклатуры,
| Товары.Цена
|ИЗ
| Документ.ПеремещениеТовара.Номенклатура КАК Товары
|ГДЕ
| Товары.Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Ссылка);
данные = Запрос.Выполнить().Выгрузить();
Движения.ТоварыНаСкладах.Загрузить(данные);
Движения.ТоварыНаСкладах.Записать();
// проверка на остатки
Запрос = Новый Запрос ("ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(
| &Дата,
| Номенклатура В
| (ВЫБРАТЬ
| ПеремещениеТовараНоменклатура.Номенклатура КАК Номенклатура
| ИЗ
| Документ.ПеремещениеТовара.Номенклатура КАК ПеремещениеТовараНоменклатура
| ГДЕ
| ПеремещениеТовараНоменклатура.Ссылка = &Ссылка)
| И Склад = &Склад) КАК ТоварыНаСкладахОстатки
|ГДЕ
| ТоварыНаСкладахОстатки.КоличествоОстаток < 0");
Запрос.УстановитьПараметр("Склад", СкладПолучатель);
Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Ссылка);
Запрос.УстановитьПараметр("Дата", Новый Граница(Ссылка.МоментВремени(), ВидГраницы.Включая) );
данные = запрос.Выполнить().Выгрузить();
Если данные.Количество() > 0 Тогда
Для Каждого стр Из данные Цикл
Сообщить("Не хватает товара на складе. Товар:" + стр.Номенклатура + "; Характеристика: " + стр.ХарактеристикаНоменклатуры + " Не хватает: " + Строка(-стр.КоличествоОстаток));
Отказ = Истина;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Показать
(7) так ты на каком складе остатки проверяешь ? У тебя же склад получатель там проверяется. А там, естественно всегда + т.к. туда и прибыло.
Смысл данного кода таков,
Сначала делаем движение - СкладИсточник (расход) --->СкладПолучатель (приход)
далее проверяем, остаток на СкладИсточник-е, если там ушло в минус, то отмена транзакции. Если там 0 или + значит все окейно.
Смысл данного кода таков,
Сначала делаем движение - СкладИсточник (расход) --->СкладПолучатель (приход)
далее проверяем, остаток на СкладИсточник-е, если там ушло в минус, то отмена транзакции. Если там 0 или + значит все окейно.
(13) у тебя движение то, при проведении вообще происходит ?
вообще мне кажется ты остаток некорректно берешь.
У тебя должен быть полный набор измерений, номенклатура, склад, характеристика, серийник ...что там еще
Ты двигаешь указываешь все измерения регистра, вот и считывать остаток тебе тоже надо точно по всем таким же измерениям регистра
вообще мне кажется ты остаток некорректно берешь.
У тебя должен быть полный набор измерений, номенклатура, склад, характеристика, серийник ...что там еще
Ты двигаешь указываешь все измерения регистра, вот и считывать остаток тебе тоже надо точно по всем таким же измерениям регистра
(14) Да ! С одного склада в минус и в другой сразу в плюс.
Вроде так и так указываю абсолютно все измерения которые есть. Просто я думаю, что остатка как такого вообще нету, т.к. с одного склада он уходит и сразу приходит на другой, то есть товар всегда в плюсе.
Вроде так и так указываю абсолютно все измерения которые есть. Просто я думаю, что остатка как такого вообще нету, т.к. с одного склада он уходит и сразу приходит на другой, то есть товар всегда в плюсе.
(15)
Ну так Склад - у тебя же измерение регистра ? Остаток же в разрезе склада надо смотреть.
Включи режим совместимости конфигурации 8.3.10 или 11
выложи еще раз свой дтшник
Просто я думаю, что остатка как такого вообще нету, т.к. с одного склада он уходит и сразу приходит на другой, то есть товар всегда в плюсе.
Ну так Склад - у тебя же измерение регистра ? Остаток же в разрезе склада надо смотреть.
Включи режим совместимости конфигурации 8.3.10 или 11
выложи еще раз свой дтшник
(17) вот, изучай
нашел 3 грубых ошибки (и это даже не текст запроса, хотя там тоже не хватало полей)
нашел 3 грубых ошибки (и это даже не текст запроса, хотя там тоже не хватало полей)
Прикрепленные файлы:
tovari3.dt
(19) тип регистра накопления - строка, это ключевая ошибка.
в проверке на остатки, было если количество <0 в таблице значений не может быть отрицательного количества строк, условие никогда не выполнилось бы
ну и количество полей в запросе, как я и говорил. Добавил измерений. К тому же Сообщить в твоем случае сообще бы не сработало, т.к. оно ссылалось на несуществующие поля выборки.
в проверке на остатки, было если количество <0 в таблице значений не может быть отрицательного количества строк, условие никогда не выполнилось бы
ну и количество полей в запросе, как я и говорил. Добавил измерений. К тому же Сообщить в твоем случае сообще бы не сработало, т.к. оно ссылалось на несуществующие поля выборки.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот