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

Контроль остатков

Автор Yuriy O, 25 ноя 2017, 09:55

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

Yuriy O

Изучаю реализацию контроля остатков в 1С, по всем примерам делаю вроде, но результаты чтетны. Помогите, подскажите, что не так?

Документы: ПолучениеУчебников и РеализацияУчебников
Табличные части: Учебники
Регистр накопления: ОстаткиУчебников

Код отрабатывает без ошибок, но не отображает остаток.
Вот код:


Процедура ОбработкаПроведения(Отказ, Режим)
   
   Движения.ОстатокУчебников.Записывать = Истина;
   Для Каждого ТекСтрокаУчебники Из Учебники Цикл
      Движение = Движения.ОстатокУчебников.Добавить();
      Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
      Движение.Период = Дата;
      Движение.Учебники = ТекСтрокаУчебники.Наименование;
      Движение.Количество = ТекСтрокаУчебники.Количество;
   КонецЦикла;
   
   
   
   Если    Режим = РежимПроведенияДокумента.Оперативный Тогда
   
   
   
   
   
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ОстатокУчебниковОстатки.Учебники,
      |   ОстатокУчебниковОстатки.КоличествоОстаток
      |ИЗ
      |   РегистрНакопления.ОстатокУчебников.Остатки(
      |         ,
      |         Учебники В
      |            (ВЫБРАТЬ
      |               РеализацияУчебниковУчебники.Наименование.Ссылка
      |            ИЗ
      |               Документ.РеализацияУчебников.Учебники КАК РеализацияУчебниковУчебники
      |            ГДЕ
      |               РеализацияУчебниковУчебники.Наименование.Ссылка = &Ссылка)) КАК ОстатокУчебниковОстатки
      |ГДЕ
      |   ОстатокУчебниковОстатки.КоличествоОстаток < 0";
   
   Запрос.УстановитьПараметр("Ссылка", Ссылка);
   
   РезультатЗапроса = Запрос.Выполнить();
   
   ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
   
   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      
             Сообщить (ВыборкаДетальныеЗаписи.Количество());

      
   КонецЦикла;
   
Сообщить (Режим);      Сообщить (ВыборкаДетальныеЗаписи.Количество());

КонецЕсли;

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

Golickoff

Сообщить (ВыборкаДетальныеЗаписи.Количество()); данная строка сообщает количество результатов запроса, причём делает это столько раз, сколько результатов у вас есть. Если результатов 100, ваш код сто раз напишет число 100. Вам нужно убрать лишние скобки и заменить "Количество" на "КоличествоОстаток"
Сообщить(ВыборкаДетальныеЗаписи.КоличествоОстаток);
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

Yuriy O

C Вашими поправками -сообщить- возвращает пустую строку. Видимо ошибка еще и в запросе или коде

Oldman06


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

Жабка

http://youtu.be/03pfHLet0NA&t=60s - Здесь реализован контроль остатков для воспитателей) Может поможет сделать аналогично.

DmitriyF

Цитата: Yuriy O от 25 ноя 2017, 09:55
Изучаю реализацию контроля остатков в 1С, по всем примерам делаю вроде, но результаты чтетны. Помогите, подскажите, что не так?

Документы: ПолучениеУчебников и РеализацияУчебников
Табличные части: Учебники
Регистр накопления: ОстаткиУчебников

Код отрабатывает без ошибок, но не отображает остаток.
Вот код:


Процедура ОбработкаПроведения(Отказ, Режим)
   
   Движения.ОстатокУчебников.Записывать = Истина;
   Для Каждого ТекСтрокаУчебники Из Учебники Цикл
      Движение = Движения.ОстатокУчебников.Добавить();
      Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
      Движение.Период = Дата;
      Движение.Учебники = ТекСтрокаУчебники.Наименование;
      Движение.Количество = ТекСтрокаУчебники.Количество;
   КонецЦикла;
   
   
   
   Если    Режим = РежимПроведенияДокумента.Оперативный Тогда
   
   
   
   
   
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ОстатокУчебниковОстатки.Учебники,
      |   ОстатокУчебниковОстатки.КоличествоОстаток
      |ИЗ
      |   РегистрНакопления.ОстатокУчебников.Остатки(
      |         ,
      |         Учебники В
      |            (ВЫБРАТЬ
      |               РеализацияУчебниковУчебники.Наименование.Ссылка
      |            ИЗ
      |               Документ.РеализацияУчебников.Учебники КАК РеализацияУчебниковУчебники
      |            ГДЕ
      |               РеализацияУчебниковУчебники.Наименование.Ссылка = &Ссылка)) КАК ОстатокУчебниковОстатки
      |ГДЕ
      |   ОстатокУчебниковОстатки.КоличествоОстаток < 0";
   
   Запрос.УстановитьПараметр("Ссылка", Ссылка);
   
   РезультатЗапроса = Запрос.Выполнить();
   
   ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
   
   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      
             Сообщить (ВыборкаДетальныеЗаписи.Количество());

      
   КонецЦикла;
   
Сообщить (Режим);      Сообщить (ВыборкаДетальныеЗаписи.Количество());

КонецЕсли;

КонецПроцедуры
Вообще при таком методе контроля принято выбирать данные из табличной части, а вот минуса нужно проверять с установкой временной Таблицы. В двух словах запрос не верный.

Yuriy O

Цитировать
Вообще при таком методе контроля принято выбирать данные из табличной части, а вот минуса нужно проверять с установкой временной Таблицы. В двух словах запрос не верный.

Дмитрий можете привести правильный запрос? Делаю по примеру видео Гилева за 21 день - у него на видео работает.

DmitriyF

Цитата: Yuriy O от 28 ноя 2017, 12:34
Цитировать
Вообще при таком методе контроля принято выбирать данные из табличной части, а вот минуса нужно проверять с установкой временной Таблицы. В двух словах запрос не верный.

Дмитрий можете привести правильный запрос? Делаю по примеру видео Гилева за 21 день - у него на видео работает.
вот здесь http://курсы-по-1с.рф/articles/2017-02-12-two-methods-for-inventory-check/ посмотри

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск