Приходная накладная в 1с присутствует в большинстве задач экзамена 1С:Специалист по платформе.
Рассмотрим пример реализации Документа “Приходная накладная” для решения экзамена 1С:Специалист по платформе.
Для решение будем использовать каркасную конфигурацию специально разработанную для сдачи экзамена 1С:Специалист по платформе.
Текст задачи:
Компания занимается оптовой торговлей. Поступление товаров отражается документом «Приходная накладная», продажа – «Расходная накладная». Помимо продажи товара, применяются дополнительные услуги, например по доставке. И услуги и товары указываются в одной табличной части. Иначе говоря они принадлежат одному Справочнику.
Складской учет товаров не ведется.
При проведении расходной накладной при нехватке товара необходимо выдавать соответствующее предупреждение с указанием количества нехватки и не позволять проводить документ.
Списание себестоимости товаров должно быть организовано по партиям, в зависимости от текущего значения принятого на этот год в учетной политике метода списания себестоимости (FIFO или LIFO) и указанной в документе (в шапке документа) партии. Так что напомним – учетная политика действует год. На следующий год метод списания может смениться. В первую очередь
должен списываться товар из указанной в шапке партии. В случае, если товара по выбранной партии не хватает (или нет), то товар списывается в соответствии с текущей учетной политикой.
Необходимо построить отчет по продажам товаров за период и остаткам товара на указанную дату.
Разумеется, Настройка учетной политики описана в статье: “Как настроить учетную политику в 1с“.
Решение
Во-первых в регистр накопления добавляем недостающие данные. Измерение Партия и Ресурс Сумма.
Для Измерения “Номенклатура” также выставим флаг “Запрет незаполненных значений”.
Как принято, для Ресурса Сумма Тип “Число” точность “2”.
Во-вторых настраиваем Документ “Приходная накладная”. Добавим Недостающие данные. Перейдет на вкладку “Данные”.
В-третьих измененям процедуру проведения документа “Приходная накладная” 1с. Воспользуемся конструктором движений и заполним поля согласно картинки ниже.
После нажатия кнопки “ОК” в Обработке Проведения создастся следующий код:
И вот еще, изменим код Обработки Проведения.
После кода:
Движения.ОстаткиНоменклатуры.Записывать = Истина;
Вставим Запрос.
Запрос=новый запрос;
Запрос.Текст=" ";
Кроме того, установим курсом между двумя Символами (“). И вызовем конструктор запроса.
Во-первых выберем таблицы и поля.
Во-вторых настроим Группировку.
В-третьих установим условие:
Добавляем код, предназначенный для задания параметра:
Запрос.УстановитьПараметр("Ссылка",Ссылка);
Кроме того, определяем выборку из запроса.
Выборка=запрос.Выполнить().Выбрать();
Применяем цикл.
пока Выборка.Следующий() цикл
Движение = Движения.ОстаткиНоменклатуры.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Партия = Ссылка;
Движение.Номенклатура = Выборка.Номенклатура;
Движение.Количество = Выборка.Количество;
Движение.Сумма = Выборка.Сумма;
конеццикла;