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

Для Измерения «Номенклатура» также выставим флаг «Запрет незаполненных значений».
Как принято, для Ресурса Сумма Тип «Число» точность «2».
Во-вторых настраиваем Документ «Приходная накладная». Добавим Недостающие данные. Перейдет на вкладку «Данные».

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

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

И вот еще, изменим код Обработки Проведения.
После кода:
Движения.ОстаткиНоменклатуры.Записывать = Истина;
Вставим Запрос.
Запрос=новый запрос;
Запрос.Текст=" ";
Кроме того, установим курсом между двумя Символами («). И вызовем конструктор запроса.
Во-первых выберем таблицы и поля.

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

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

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

