Регистр накопления, запрет списания в минус

17.05.24

Задачи пользователя - Адаптация типовых решений

Около двух месяцев назад потребовалось сделать запрет продажи в минус, но не нашёл ни одной полезной статьи, поэтому решил поделиться своим решением.

Скачать исходный код

Наименование Файл Версия Размер
Регистр накопления, запрет списания в минус:
.zip 207,26Kb
0
.zip 1С:Предприятие 8.3 (8.3.24.1368) 207,26Kb Скачать

Для начала необходимо создать Регистр Накопления, для того чтобы фиксировать количество нашего товара.

Дальше создаём документы "Приход" и "Расход".

В документе "Приход" всё просто, делаем пару реквизитов, в моём случае это "Товар" и "Количество", дальше нам необходимо сделать движения.

Открываем движения и выбираем тип движения регистра - Приход, далее жмём "Заполнить выражения", дальше жмём "ок" и у нас появляется следующий код.

Движения.ОстаткиНоменклатуры.Записывать = Истина;
Для Каждого ТекСтрокаСписокТоваров Из СписокТоваров Цикл
	Движение = Движения.ОстаткиНоменклатуры.Добавить();
	Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
	Движение.Период = Дата;
	Движение.Товар = ТекСтрокаСписокТоваров.Товар;
	Движение.Склад = Склад;
	Движение.Количество = ТекСтрокаСписокТоваров.Количество;
КонецЦикла;

Дальше переходим в документ "Расход" и проделываем те же манипуляции, только уже выбираем тип Расход.

Движения.ОстаткиНоменклатуры.Записывать = Истина;
Для Каждого ТекСтрокаСписокТоваров Из СписокТоваров Цикл
	Движение = Движения.ОстаткиНоменклатуры.Добавить();
	Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
	Движение.Период = Дата;
	Движение.Товар = ТекСтрокаСписокТоваров.Товар;
	Движение.Склад = Склад;
	Движение.Количество = ТекСтрокаСписокТоваров.Количество;
КонецЦикла;

Ниже нужно прописать две строчки кода, которые фиксируют количество товара на момент создания документа.

Движения.ОстаткиНоменклатуры.Записать();
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;

Далее необходимо сделать запрос, в котором в качестве таблицы мы выбираем наш регистр с типом остатки, а в полях выбираем оба наших реквизита, в условиях надо выбрать количество меньше 0.

Запрос = Новый Запрос;
Запрос.Текст = 
	"ВЫБРАТЬ
	|	ОстаткиНоменклатурыОстатки.Товар КАК Товар,
	|	ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток
	|ИЗ
	|	РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки
	|ГДЕ
	|	ОстаткиНоменклатурыОстатки.КоличествоОстаток < 0";

После создания запроса надо присвоить значения

Товары = ЭтотОбъект.СписокТоваров.ВыгрузитьКолонку("Товар");
Запрос.УстановитьПараметр("Товар", Товары);
РезультатЗапроса = Запрос.Выполнить();

Ну и наконец надо сделать условие с циклом

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

В архиве выгрузка приложения с описанным кодом.

Тестирование проводилось в 1С:Предприятие 8.3  версия (8.3.24.1368).

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4911    11    5    

20

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3280    6    0    

23

Каждому менеджеру нужен свой Excel

Адаптация типовых решений Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Каждый из нас сталкивается с ситуацией, когда какой-нибудь менеджер показывает свой Excel и рассказывает, как он что-то из 1С копирует в него, снабжает пояснениями, выделяет цветом и т.д. и т.п. Заканчивается все просьбой сделать вот чтобы также было в 1С. И оказывается такой человек (почти с гарантией) либо лучшим продажником, либо каким-то важным, за все отвечающим, - на ком все держится.

2 стартмани

22.04.2024    4445    dimanich70    15    

19

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    2595    dimanich70    8    

15

Доработка отчета "Связанные документы" (структура подчиненности) для вывода объектов из любого расширения

Адаптация типовых решений Программист Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Доработка типового отчета "Связанные документы" позволяет просто и быстро расширять состав объектов для построения структуры подчиненности документов, используя объекты основной конфигурации и любых расширений.

1 стартмани

27.10.2023    2329    19    avmartynov    14    

44

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2536    35    progmaster    8    

4