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

Как настроить проверку отрицательных остатков?

Автор onegreyonewhite, 10 фев 2012, 08:59

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

onegreyonewhite

Есть регистр накопления (остатки) "ДвиженияТовары" с измерениями "Склад" (спр.Склады), "Товар" (спр.Товар) и ресурсом "Количество".

Моя задача проверить при проведении документа, чтобы КоличествоОстатки по выбранным Складу и Товару до про ведения был меньше или равен Движению по регистру с реквизитом "Количество".

Как-то так...

has


Шурик_1985

Если ТабДок.Количество = Результат.Количество Тогда
ИначеЕсли
ТабДок.Количество > Результат.Количество тогда
БлаБлаБла

onegreyonewhite

Цитата: has от 10 фев 2012, 11:39
Внимание, сейчас будет вопрос!!!

Название темы ни о чём не говорит? :)

Я чисто технически не знаю как это реализовать...

onegreyonewhite

Цитата: Шурик_1985 от 10 фев 2012, 11:45
Если ТабДок.Количество = Результат.Количество Тогда
ИначеЕсли
ТабДок.Количество > Результат.Количество тогда
БлаБлаБла

Ващпе ни разу не информативный ответ...

has

Цитата: onegreyonewhite от 10 фев 2012, 11:51
Название темы ни о чём не говорит? :)

Я чисто технически не знаю как это реализовать...
Это к тому, что вопрос задавать надо. Ато кто знает что там подозревается. По сабжу, для начала читать литературу. В большинстве эта тема рассматривается.

2 Шурик_1985, я так понял человек хочет чтоб за него весь код написали.

onegreyonewhite

Цитата: has от 10 фев 2012, 12:29
Цитата: onegreyonewhite от 10 фев 2012, 11:51
Название темы ни о чём не говорит? :)

Я чисто технически не знаю как это реализовать...
Это к тому, что вопрос задавать надо. Ато кто знает что там подозревается. По сабжу, для начала читать литературу. В большинстве эта тема рассматривается.

2 Шурик_1985, я так понял человек хочет чтоб за него весь код написали.

О ДА! Гений... Именно этого я и хочу. И мне совершенно наплевать на понимание принципов написания. ведь если бы мне было не наплевать, я бы обязательно понял (я же экстрасенс!) что скрывается под "Результат" и "ТабДок". И я привёл живые примеры из своего тренеровочного образца исключительно потому что хочу скопипастить и задать такой же вопрос на форуме про другой документ на ту же тему.
Поздравляю, ты раскрыл мой хитрый план, гений.  <_<

onegreyonewhite

для адекватов:

попробовал сделать по аналогии http://www.nastroy-ka.ru/ent1c812/90--------1-82.html сделать. Вот что получилось:
// регистр ДвиженияТовары Приход
Движения.ДвиженияТовары.Записывать = Истина;
//Для Каждого ТекСтрокаСписокПокупок Из СписокПокупок Цикл
// Движение = Движения.ДвиженияТовары.Добавить();
// Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
// Движение.Период = Дата;
// Движение.Склад = Склад;
// Движение.Товар = ТекСтрокаСписокПокупок.Товар;
// Движение.Количество = ТекСтрокаСписокПокупок.Количество;
//КонецЦикла;
Запрос = Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| СписокПокупок.Товар,
| СУММА(СписокПокупок.Количество) КАК Количество
|ПОМЕСТИТЬ ДокТЧ
| Документ.Продажа.СписокПокупок КАК СписокПокупок
|ГДЕ
| СписокПокупок.Ссылка = &Ссылка
|
|СГРУПИРОВАТЬ ПО
| СписокПокупок.Товар
| ;
|
| //////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДокТЧ.Товар
| ДокТЧ.Количество
| ЕСТЬNULL(ДвиженияТоварыОстатки.КоличествоОстаток,0) КАК Остаток
|ИЗ
| ДокТЧ Как ДокТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДвиженияТоваров.Остатки(
| ,
| Склад = &Склад,
| И Товар В
| (ВЫБРАТЬ
| ДокТЧ.Товар
| ИЗ
| ДокТЧ Как ДокТЧ)) Как ДвиженияТоварыОстатки
| ПО ДокТЧ.Товар = ДвиженияТоварыОстктки.Товар";
Запрос.УстановитьПараметр("Склад", Склад);
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока выборка.Следующий() Цикл
Если выборка.Количество < выборка.Остаток Тогда
Сообщить("Не хватает товара " + Выборка.Товар + " , из необходимых " + Выборка.Количество + " . В наличие имеется только " + Выборка.Остаток);
Отказ = Истина;
КонецЕсли;
Если Не Отказ Тогда
Движение = Движения.ДвиженияТовары.Добавить();
Движение.ВидДвижения  = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Товар = Выборка.Товар;
Движение.Склад = Склад;
Движение.Количество = Выборка.Количество;
КонецЕсли;
КонецЦикла;



// регистр БалансСотрудника1 Приход
Движения.БалансСотрудника.Записывать = Истина;
Для Каждого ТекСтрокаСписокПокупок Из СписокПокупок Цикл
Движение = Движения.БалансСотрудника.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Сотрудник = Продавец;
Если ТекСтрокаСписокПокупок.Сумма < 8000 Тогда
Бонус = ТекСтрокаСписокПокупок.Сумма * 0.1;
ИначеЕсли ТекСтрокаСписокПокупок.Сумма >= 30000 Тогда
Бонус = 800;
ИначеЕсли ТекСтрокаСписокПокупок.Сумма >= 20000 Тогда
Бонус = 700;
ИначеЕсли ТекСтрокаСписокПокупок.Сумма >= 10000 Тогда
Бонус = 500;
ИначеЕсли ТекСтрокаСписокПокупок.Сумма >= 8000 Тогда
Бонус = 300;
КонецЕсли;
Движение.Баланс = Бонус;
КонецЦикла;

// регистр БалансСотрудника2 Приход
Движения.БалансСотрудника.Записывать = Истина;
Для Каждого ТекСтрокаСписокПокупок Из СписокПокупок Цикл
Движение = Движения.БалансСотрудника.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Сотрудник = ВторойПродавец;
Если ТекСтрокаСписокПокупок.Сумма < 8000 Тогда
Бонус = ТекСтрокаСписокПокупок.Сумма * 0.1;
ИначеЕсли ТекСтрокаСписокПокупок.Сумма >= 30000 Тогда
Бонус = 800;
ИначеЕсли ТекСтрокаСписокПокупок.Сумма >= 20000 Тогда
Бонус = 700;
ИначеЕсли ТекСтрокаСписокПокупок.Сумма >= 10000 Тогда
Бонус = 500;
ИначеЕсли ТекСтрокаСписокПокупок.Сумма >= 8000 Тогда
Бонус = 300;
КонецЕсли;
Движение.Баланс = Бонус;
КонецЦикла;

Маленько лишней инфы, но хрен с ним... :)
Собственно ругается:
ЦитироватьОшибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.Продажа.МодульОбъекта(44)}: Ошибка при вызове метода контекста (Выполнить)
   РезультатЗапроса = Запрос.Выполнить();
по причине:
{(5, 2)}: Синтаксическая ошибка "Документ.Продажа.СписокПокупок"
<<?>>Документ.Продажа.СписокПокупок КАК СписокПокупок

Чё к чему, непонятно..... :dfbsdfbsdf:

Dethmontt

Делай запрос конструктором, а не копируй с других сайтов.
У тебя в конфигурации нету документа "ПРОДАЖА".!!!
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Dethmontt

Сначала отдели мух от котлет. Посмотри где вообще хранятся эти остатки. Подумай как проверить на определенную дату количество определенной номенклатуры в БД. (типовыми средствами)
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:

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

Рейтинг@Mail.ru

Поиск