• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

KitKat

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

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

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

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

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

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

КонецЦикла;

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


Спасибо!!! ;)
 
U

unknown181538

Читаем раздел документации, где написано, как получить итоги регистра, выгружаем их в таблицу значений, затем сравниваем остатки с кол-вом, которое нужно списать.
Ну и выкладывайте, что будет получаться.
 
V

vbs

Или изучаем типовые конфигурации ТиС, в которых имеется предохраняющий клапан - константа КонтрольОтрицательныхОстатков
 
S

SaschaL

На просторах интернета есть сканы учебных материалов от 1С по компоненте "Оперативный учет"
поищите почитайте там все подробно и пошагово рассматривается.

А так я бы лично сделал контроль остатков при подборе номенклатуры в документе, что пи при вводе количества на списания программа предупреждала что и к чему.
 
V

vbs

А так я бы лично сделал контроль остатков при подборе номенклатуры в документе, что пи при вводе количества на списания программа предупреждала что и к чему
Или это новое слово в оперативном учете ?
 
K

KitKat

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

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

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

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

КонецЦикла;

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

vbs

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!