1С: Расчет остатков Номенклатуры
1С: Создание отчета по регистру накопления ОстаткиНоменклатуры.
Открыть регистр накопления ОстаткиНоменклатуры, выбрать вкладку Прочее и нажать на кнопку Модуль менеджера.
В окне Регистр накопления ОстаткиНоменклатуры: Модуль менеджера создать экспортную функцию ПроверитьОтрицательныеОстаткиНоменклатуры. Нажать правой кнопкой мыши (ПКМ) в теле функции и выбрать в контекстном меню Конструктор запроса с обработкой результата... .
В открывшемся окне Конфигуратор нажать кнопку Да.
В окне Конструктор запроса с обработкой результата нажать кнопку Запрос.
В окне Запрос ввести или вставить запрос
Построение Запроса с помощью консоли запросов в пользовательском режиме.
Для построения запроса в пользовательском режиме необходима Консоль запросов (скачать в Интернете).
Открыть Консоль запросов и в поле Текст запроса нажать ПКМ, выбрать пункт Конструктор запроса.
В окне Конструктор запроса в поле База данных открыть список для РасходнаяНакладная. Выбрать пункт Товар в РасходнаяНакладная и добавить в поле Таблицы. Из поля Таблицы добавить Товар в поле Поля. Перейти на вкладку Условия.
Добавить Ссылка из РасходнаяНакладнаяТовар в поле Условия. Для дальнейшего удобства определения какая ссылка к чему относится, добавить РН в соответствующем пункте в поле Условия. Нажать Ок.
Скопировать текст запроса и очистить поле Текст запроса.
Снова открыть Конструктор запроса. Выбрать из поля База Данных в РегистрыНакопления пункт ОстаткиНоменклатуры.Остатки и добавить в поле Таблицы. В поле Таблицы выбрать и добавить в поле Поля пункты Номенклатура и КоличествоОстаток. Затем нажать на кнопку Параметры виртуальной таблицы (предварительно выбрав курсором ОстаткиНоменклатурыОстатки в поле Таблицы).
В окне Параметры виртуальной таблицы в поле Период ввести &ДатаОтбора. В поле Условие нажать кнопку Выбрать.
В окне Произвольное выражение дважды щелкнуть левой кнопкой мыши по Номенклатура в верхнем левом поле. Слово Номенклатура появится в нижнем поле. В нижнем окне после Номенклатура дописываем В и открываем скобки. В скобки вставляем ранее скопированный текст запроса. Нажимаем Ок.
В окне Параметры виртуальной таблицы в поле условия появляется наш код. Жмем Ок.
Нажать Ок в окне Конструктор Запроса.
В поле Текст запроса появился запрос.
Не удаляя текст запроса открыть Конструктор запроса и перейти на вкладку Условия. Добавить КоличествоОстаток в поле Условие. И изменить условие на ОстаткиНоменклатурыОстатки.КоличествоОстаток < 0. Нажать Ок.
Копируем текст запроса и возвращаемся в Конфигуратор.
Вставляем текст запроса в поле окна Запрос. Закрываем и сохраняем изменения. Нажать Ок в окне Конструктор запроса с обработкой результата.
Тело функции заполнится кодом, построенным конструктором.
Добавить и изменить Код как указано ниже
Добавить ГраницаОтбора
Перейти в модуль объекта Расходной накладной и добавить код:
Контроль остатков по Расходной Накладной теперь будет выполняться. Аналогично сделать для документа ЗаказНаПроизводство и совместить в функции.