• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Приход/Расход 1С 7.7

  • Автор темы Автор темы KitKat
  • Дата начала Дата начала
K

KitKat

Здравствуйте, помогите новачку, пожалуйста!

У меня такой вопрос: Есть склад, припустим на него пришло 100 единиц товара. Это у нас приход. Потом из этого склада мы хотим снять 101 единицу этого товара. Это расход. При выводи отчета говорит, что товара осталось -1 единица. Как сделать программно так, чтобы у случаях, когда мы хотим снять товара больше, чем его есть на складе, нам выводило сообщения, что это сделать невозможно, поскольку такого количества товара на складе нет????

Модуль документа Расход:

Процедура ОбработкаПроведения()

ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл

Регистр.ОстаткиМатериалов.Материал = Материал;
Регистр.ОстаткиМатериалов.Склад = Склад;
Регистр.ОстаткиМатериалов.Количество = Количество;
Регистр.ОстаткиМатериалов.ДвижениеРасходВыполнить();

КонецЦикла;

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


Спасибо!!! ;)
 
Читаем раздел документации, где написано, как получить итоги регистра, выгружаем их в таблицу значений, затем сравниваем остатки с кол-вом, которое нужно списать.
Ну и выкладывайте, что будет получаться.
 
Или изучаем типовые конфигурации ТиС, в которых имеется предохраняющий клапан - константа КонтрольОтрицательныхОстатков
 
На просторах интернета есть сканы учебных материалов от 1С по компоненте "Оперативный учет"
поищите почитайте там все подробно и пошагово рассматривается.

А так я бы лично сделал контроль остатков при подборе номенклатуры в документе, что пи при вводе количества на списания программа предупреждала что и к чему.
 
А так я бы лично сделал контроль остатков при подборе номенклатуры в документе, что пи при вводе количества на списания программа предупреждала что и к чему
Или это новое слово в оперативном учете ?
 
Вот, есть такой модуль, но он работает не очень правильно. Если на расход брать нормальное количество товара, то выводит сообщение, что его слишком много, помогите, плиз....!!!!

Процедура ОбработкаПроведения()

Сп = СоздатьОбъект("СписокЗначений");
ВыгрузитьТабличнуюЧасть(Сп,"Материал");
ВремРегистры=СоздатьОбъект("Регистры");
РегОстатки = ВремРегистры.ОстаткиМатериалов;
РегОстатки.УстановитьЗначениеФильтра("Материал",Сп,2);
РегОстатки.УстановитьЗначениеФильтра("Склад",Склад,1);
Если ИтогиАктуальны()=0 Тогда
РегОстатки.ВременныйРасчет(1);
ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент());
КонецЕсли;
ВремРегистры.Актуальность(1);
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
ТекущийОстаток = РегОстатки.Остаток(Склад,Материал,"Количество");
Если ТекущийОстаток<=Количество Тогда
Сообщить("Упс...");
СтатусВозврата(0); // Отменим проведение
КонецЕсли;
КонецЦикла;

ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Регистр.ОстаткиМатериалов.Материал = Материал;
Регистр.ОстаткиМатериалов.Склад = Склад;
Регистр.ОстаткиМатериалов.Количество = Количество;
Регистр.ОстаткиМатериалов.ДвижениеРасходВыполнить();

КонецЦикла;

КонецПроцедуры
 
Если ТекущийОстаток<=Количество Тогда
Сообщить("Упс...");
СтатусВозврата(0); // Отменим проведение
Сообщаю : Упс !
ТекущийОстаток < Количество - под ноль-то расход ведь возможен ?

И к тому же, зачем второй цикл ?
В первом проверил, достаточно ли материала и сделал расход, а если недостаточно - тогда Упс !
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab