Записки программиста 1с

Приходная накладная в 1с

Приходная накладная в 1с присутствует в большинстве задач экзамена 1С:Специалист по платформе.

Рассмотрим пример реализации Документа “Приходная накладная” для решения экзамена 1С:Специалист по платформе.

Для решение будем использовать каркасную конфигурацию специально разработанную для сдачи экзамена 1С:Специалист по платформе.

Текст задачи:

Компания занимается оптовой торговлей. Поступление товаров отражается документом «Приходная накладная», продажа – «Расходная накладная». Помимо продажи товара, применяются дополнительные услуги, например по доставке. И услуги и товары указываются в одной табличной части. Иначе говоря они принадлежат одному Справочнику.
Складской учет товаров не ведется.
При проведении расходной накладной при нехватке товара необходимо выдавать соответствующее предупреждение с указанием количества нехватки и не позволять проводить документ.
Списание себестоимости товаров должно быть организовано по партиям, в зависимости от текущего значения принятого на этот год в учетной политике метода списания себестоимости (FIFO или LIFO) и указанной в документе (в шапке документа) партии. Так что напомним – учетная политика действует год. На следующий год метод списания может смениться. В первую очередь
должен списываться товар из указанной в шапке партии. В случае, если товара по выбранной партии не хватает (или нет), то товар списывается в соответствии с текущей учетной политикой.
Необходимо построить отчет по продажам товаров за период и остаткам товара на указанную дату.

Разумеется, Настройка учетной политики описана в статье: “Как настроить учетную политику в 1с“.

Решение

Во-первых в регистр накопления добавляем недостающие данные. Измерение Партия и Ресурс Сумма.

Приходная накладная в 1с
Настройка измерения Партия

Для Измерения “Номенклатура” также выставим флаг “Запрет незаполненных значений”.

Как принято, для Ресурса Сумма Тип “Число” точность “2”.

Во-вторых настраиваем Документ “Приходная накладная”. Добавим Недостающие данные. Перейдет на вкладку “Данные”.

Приходная накладная в 1с
Данные Приходной накладной

В-третьих измененям процедуру проведения документа “Приходная накладная” 1с. Воспользуемся конструктором движений и заполним поля согласно картинки ниже.

Приходная накладная в 1с
Настройка движения Документа “Приходная накладная”.

После нажатия кнопки “ОК” в Обработке Проведения создастся следующий код:

Приходная накладная в 1с
Код обработки Проведения Документа “Приходная накладная”.

И вот еще, изменим код Обработки Проведения.

После кода:

Движения.ОстаткиНоменклатуры.Записывать = Истина;

Вставим Запрос.

Запрос=новый запрос;
Запрос.Текст=" ";

Кроме того, установим курсом между двумя Символами (“). И вызовем конструктор запроса.

Во-первых выберем таблицы и поля.

Конструктор запроса в 1с
Конструктор запроса Вкладка Таблицы и поля.

Во-вторых настроим Группировку.

Группировка в Конструкторе запросов
Группировка

В-третьих установим условие:

Условие в запросе
Условие

Добавляем код, предназначенный для задания параметра:

Запрос.УстановитьПараметр("Ссылка",Ссылка);

Кроме того, определяем выборку из запроса.

Выборка=запрос.Выполнить().Выбрать();

Применяем цикл.

пока Выборка.Следующий() цикл
		 Движение = Движения.ОстаткиНоменклатуры.Добавить();
		Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
		Движение.Период = Дата;
		Движение.Партия = Ссылка;
		Движение.Номенклатура = Выборка.Номенклатура;
		Движение.Количество = Выборка.Количество;
		Движение.Сумма = Выборка.Сумма;

	конеццикла;
Приходная накладная в 1с
Полный код процедуры Обработка Проведения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *