База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как правильно организовать учет услуг в 1С при ведении товароучета?
- В этой теме 1 ответ, 2 участника, последнее обновление 10 минут назад сделано
Odin — Одинэсник.
-
АвторЗаписи
-
-
31 октября 2026 в 14:03 #38936
Есть такая задача для экзамена:
Компания занимается оптовой торговлей. Поступление товаров отражается документом «Приходная накладная», продажа — «Расходная накладная». Помимо продажи товара, могут оказываться дополнительные услуги, например по доставке. И услуги и товары указываются в одной табличной части. Услуги могут быть оказаны и при поступлении товаров.
Учет товаров ведется в разрезе складов. Поступление и продажа осуществляются с указанием склада (в шапке документа).
Списание себестоимости товаров должно быть организовано по партиям на складе, в зависимости метода списания (FIFO, LIFO или средняя), принятого в учетной политике. Значение учетной политики может меняться в любой день месяца. Следует считать, что пользователь вручную самостоятельно корректно будет устанавливать учетную политику на соответствующий период. При проведении документа необходимо использовать метод, актуальный на момент проведения документа.
Создать документ «Корректировка регистров», в котором пользователь сможет самостоятельно сформировать произвольные записи в любой регистр накопления, созданный в конфигурации. Контроль корректности записей осуществляет сам пользователь на этапе заполнения. У документа обязательно должен присутствовать реквизит «Комментарий».
В пользовательском режиме необходимо реализовать два примера ввода и проведения документов:
Переход с «партионного» учета на «среднюю»
Переход со «средней» себестоимости на использование метода FIFO или LIFOЧто мне делать с услугами? Их же не надо записывать в регистр «остатки номенклатуры»? Тогда в приходной накладной при проведении в запросе выбирать условие «не услуга»? Или как?
-
31 октября 2026 в 14:03 #38937
Да, услуги не должны записываться в регистр остатков товаров. В вашем случае в движениях регистра
ОстаткиНоменклатурынужно обрабатывать только строки, у которых вид номенклатуры равенТовар.Лучше использовать не условие «не услуга», а явное условие:
Номенклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.ТоварТак решение будет корректным, даже если позже появятся другие виды номенклатуры: работы, комплекты, тара и так далее.
## 1. Как настроить номенклатуру
В справочнике
Номенклатурадолжен быть реквизит, например:—
ВидНоменклатуры;
— тип:ПеречислениеСсылка.ВидыНоменклатуры.В перечислении:
—
Товар;
—Услуга.Если в каркасной базе уже есть такой реквизит или перечисление, используйте существующие объекты.
## 2. Регистр остатков
Регистр накопления остатков, например
ОстаткиТоваров, должен содержать только товарные остатки.Рекомендуемая структура:
Измерения:
—
Номенклатура;
—Склад;
—Партия.Ресурсы:
—
Количество;
—Сумма.Партией обычно является документ поступления или ссылка на документ прихода. Например:
1С (Код)1Движение.Партия = Ссылка;Услуга не имеет складского остатка, партии и количества на складе. Поэтому движение услуги в этот регистр создавать нельзя.
## 3. Приходная накладная
В приходной накладной нужно:
1. обработать товарные строки;
2. сформировать приход в регистр остатков;
3. строки услуг в регистр остатков не записывать.Например, запрос для получения товарных строк:
|ВЫБРАТЬ
| ПриходнаяНакладная.Товары.Номенклатура КАК Номенклатура,
| СУММА(ПриходнаяНакладная.Товары.Количество) КАК Количество,
| СУММА(ПриходнаяНакладная.Товары.Сумма) КАК Сумма
|ИЗ
| Документ.ПриходнаяНакладная.Товары КАК ПриходнаяНакладнаяТовары
|ГДЕ
| ПриходнаяНакладнаяТовары.Ссылка = &Ссылка
| И ПриходнаяНакладнаяТовары.Номенклатура.ВидНоменклатуры =
| &ВидТовара
|СГРУППИРОВАТЬ ПО
| ПриходнаяНакладнаяТовары.НоменклатураВ запросе выше имя источника лучше указать согласованно. Полный вариант:
|ВЫБРАТЬ
| ПриходнаяНакладнаяТовары.Номенклатура КАК Номенклатура,
| СУММА(ПриходнаяНакладнаяТовары.Количество) КАК Количество,
| СУММА(ПриходнаяНакладнаяТовары.Сумма) КАК Сумма
|ИЗ
| Документ.ПриходнаяНакладная.Товары КАК ПриходнаяНакладнаяТовары
|ГДЕ
| ПриходнаяНакладнаяТовары.Ссылка = &Ссылка
| И ПриходнаяНакладнаяТовары.Номенклатура.ВидНоменклатуры = &ВидТовара
|СГРУППИРОВАТЬ ПО
| ПриходнаяНакладнаяТовары.НоменклатураУстановка параметров:
1С (Код)12345Запрос.УстановитьПараметр("Ссылка", Ссылка);Запрос.УстановитьПараметр("ВидТовара",Перечисления.ВидыНоменклатуры.Товар);Формирование движений:
1С (Код)1234567891011121314151617Движения.ОстаткиТоваров.Записывать = Истина;РезультатЗапроса = Запрос.Выполнить();Выборка = РезультатЗапроса.Выбрать();Пока Выборка.Следующий() ЦиклДвижение = Движения.ОстаткиТоваров.Добавить();Движение.ВидДвижения = ВидДвиженияНакопления.Приход;Движение.Период = Дата;Движение.Номенклатура = Выборка.Номенклатура;Движение.Склад = Склад;Движение.Партия = Ссылка;Движение.Количество = Выборка.Количество;Движение.Сумма = Выборка.Сумма;КонецЦикла;Строка с услугой просто не попадет в выборку и движения по ней не будет.
## 4. Почему не стоит использовать условие
<> УслугаТехнически такой вариант может работать:
|ГДЕ
| Номенклатура.ВидНоменклатуры <> &ВидУслугиНо для экзамена правильнее использовать:
|И Номенклатура.ВидНоменклатуры = &ВидТовара
Причины:
1. В регистр остатков должны попадать только позиции, являющиеся товаром.
2. Если позже появится видРабота, он ошибочно может попасть в остатки при условии<> Услуга.
3. Явное условие проще проверять и объяснять экзаменатору.
4. Услуги могут иметь другие особенности, не сводящиеся к простому исключению.## 5. Расходная накладная
В расходной накладной нужно разделить обработку строк на два вида.
### Товар
Для товара необходимо:
— контролировать остаток;
— подобрать партии;
— списать количество;
— списать себестоимость;
— сформировать расход в регистр остатков;
— использовать FIFO, LIFO или среднюю стоимость.### Услуга
Для услуги не нужно:
— проверять остаток;
— подбирать партию;
— списывать количество со склада;
— формировать движение Расход в регистр остатков;
— рассчитывать себестоимость как для товара.То есть при обработке табличной части расходной накладной нужно либо сразу выбирать только товары, либо в цикле разделять строки:
1С (Код)1234567891011Если Строка.Номенклатура.ВидНоменклатуры =Перечисления.ВидыНоменклатуры.Товар Тогда// Проверка остатков и списание товараИначеЕсли Строка.Номенклатура.ВидНоменклатуры =Перечисления.ВидыНоменклатуры.Услуга Тогда// В регистр ОстаткиТоваров ничего не записываемКонецЕсли;Для экзамена предпочтительнее сначала получить товарные строки отдельным запросом. Тогда в алгоритм FIFO, LIFO или средней стоимости услуги вообще не попадут.
## 6. Что делать с услугами при продаже
Здесь зависит от того, какие отчеты указаны в полном билете.
Если в задаче нужно построить отчет по продажам, в котором должны отображаться и товары, и услуги, тогда нужен отдельный регистр оборотов, например
Продажи.В него можно записывать:
— товар;
— услугу;
— количество;
— сумму продажи;
— себестоимость;
— прибыль.Структура регистра
Продажиможет быть такой:Измерения:
—
Номенклатура;
— при необходимостиСклад;
— при необходимостиКонтрагент.Ресурсы:
—
Количество;
—Выручка;
—Себестоимость;
—Прибыль.Для товара в расходной накладной:
1С (Код)1ДвижениеПродажи.Себестоимость = СебестоимостьПартии;Для услуги:
1С (Код)1ДвижениеПродажи.Себестоимость = 0;или указывается себестоимость услуги, если она предусмотрена условием задачи.
Прибыль услуги в простом варианте будет:
1С (Код)1Прибыль = Выручка - 0 = ВыручкаНо это допустимо только если в условии нет отдельного учета затрат на услуги.
Пример формирования оборота продаж для услуги:
1С (Код)1234567ДвижениеПродажи = Движения.Продажи.Добавить();ДвижениеПродажи.Период = Дата;ДвижениеПродажи.Номенклатура = Строка.Номенклатура;ДвижениеПродажи.Склад = Склад;ДвижениеПродажи.Количество = Строка.Количество;ДвижениеПродажи.Выручка = Строка.Сумма;ДвижениеПродажи.Себестоимость = 0;Главное, чтобы эта запись не дублировалась движением в
ОстаткиТоваров.## 7. Услуги при поступлении
Фраза:
> Услуги могут быть оказаны и при поступлении товаров
означает, что в табличной части приходной накладной могут находиться одновременно:
| Номенклатура | Вид | Количество | Сумма |
|—|—|—:|—:|
| Товар 1 | Товар | 10 | 1 000 |
| Доставка | Услуга | 1 | 300 |В этом случае:
—
Товар 1записывается приходом вОстаткиТоваров;
—ДоставкавОстаткиТоваровне записывается;
— услуга не создает партию;
— услуга не увеличивает количество товаров;
— услуга не влияет на FIFO, LIFO или среднюю себестоимость, если в условии прямо не сказано включать стоимость доставки в стоимость товаров.Это последний момент особенно важен.
### Если доставка является отдельной услугой
Если доставка просто отдельная строка табличной части, то:
1С (Код)12Товар: 10 шт., 1 000 руб.Доставка: 1 услуга, 300 руб.В остатки товара записывается:
1С (Код)12Количество: 10Сумма: 1 000Сумма доставки в стоимость партии товара не включается.
### Если по условию доставка увеличивает себестоимость товара
Тогда в задаче должно быть явно указано, что транспортные или иные дополнительные расходы распределяются на товары. В таком случае требуется отдельный алгоритм:
1. определить товарные строки;
2. определить стоимость услуг;
3. распределить стоимость услуги между товарами;
4. увеличить сумму партий;
5. записать распределенную сумму в регистр остатков.В приведенной формулировке такого требования нет. Поэтому включать услугу в стоимость партии не нужно.
## 8. Что делать с услугой в приходном документе в регистре продаж
Услуга из приходной накладной не является продажей. Поэтому в регистр
Продажиее тоже обычно не записывают.Итого для приходной накладной:
| Строка | Остатки товаров | Продажи |
|—|—:|—:|
| Товар | Приход | Нет |
| Услуга | Нет | Нет |Для расходной накладной:
| Строка | Остатки товаров | Продажи |
|—|—:|—:|
| Товар | Расход | Оборот продажи |
| Услуга | Нет | Оборот продажи |Это наиболее логичная модель для данного условия.
## 9. Как учитывать услуги в проверке отрицательных остатков
Услуги не должны участвовать в запросе контроля остатков.
Запрос контроля должен отбирать только товарные позиции. Например:
|ВЫБРАТЬ
| РасходнаяНакладнаяТовары.Номенклатура,
| СУММА(РасходнаяНакладнаяТовары.Количество) КАК Количество
|ПОМЕСТИТЬ ВТТоварыДокумента
|ИЗ
| Документ.РасходнаяНакладная.Товары КАК РасходнаяНакладнаяТовары
|ГДЕ
| РасходнаяНакладнаяТовары.Ссылка = &Ссылка
| И РасходнаяНакладнаяТовары.Номенклатура.ВидНоменклатуры = &ВидТовара
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяТовары.НоменклатураЗатем уже по этим позициям получаются остатки по складу.
Нельзя проверять услуги в остатках, потому что система будет либо:
— получать нулевой остаток услуги;
— ошибочно запрещать проведение документа;
— пытаться списывать несуществующую партию услуги.## 10. Как учитывать услуги при подборе партий
Запрос подбора партий также должен содержать только товары:
|ВЫБРАТЬ
| Остатки.Номенклатура,
| Остатки.Склад,
| Остатки.Партия,
| Остатки.КоличествоОстаток,
| Остатки.СуммаОстаток
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки(
| &Момент,
| Номенклатура В
| (ВЫБРАТЬ
| ВТТоварыДокумента.Номенклатура
| ИЗ
| ВТТоварыДокумента КАК ВТТоварыДокумента)
| И Склад = &Склад
| ) КАК Остатки
|ГДЕ
| Остатки.КоличествоОстаток > 0
|УПОРЯДОЧИТЬ ПО
| Остатки.Номенклатура,
| Остатки.Партия.Момент ВОЗРДля LIFO порядок будет обратным:
|УПОРЯДОЧИТЬ ПО
| Остатки.Номенклатура,
| Остатки.Партия.Момент УБЫВНо в реальном решении сортировку нужно строить по дате и ссылке партии либо по периоду регистра, в зависимости от того, как спроектирован регистр. Важно не включать услуги в таблицу товаров, для которых выполняется подбор партий.
## 11. Как быть при переходе с партийного учета на среднюю стоимость
При переходе с партийного учета на среднюю стоимость услуги не участвуют:
— у услуги нет остатка;
— у услуги нет партии;
— ее не нужно перераспределять между партиями;
— ее не нужно переносить в новый способ учета.Изменение учетной политики касается только товарных остатков и алгоритма списания товаров.
Например, если в регистре есть такие остатки:
| Номенклатура | Партия | Количество | Сумма |
|—|—|—:|—:|
| Товар 1 | Приход №1 | 5 | 500 |
| Товар 1 | Приход №2 | 3 | 360 |При переходе на среднюю стоимость можно продолжить хранить партии, но при списании использовать общую среднюю стоимость:
1С (Код)12Средняя стоимость единицы =Общая сумма остатка / Общее количество остаткаУслуги в этот расчет не попадают.
При обратном переходе со средней стоимости на FIFO или LIFO необходимо, чтобы в остатках сохранялась партийная детализация. Именно поэтому не следует при переходе полностью сворачивать партии в одну запись, если последующий переход на FIFO или LIFO должен быть работоспособным.
## 12. Как построить «Корректировку регистров»
Документ
КорректировкаРегистровдолжен позволять пользователю вручную создавать записи в регистрах накопления.Практический вариант:
В документе создать реквизит:
—
Комментарий, тип Строка неограниченной длины.Создать табличную часть, например
Записи:—
РегистрНакопления, тип Строка или перечисление;
—ВидДвижения;
—Период;
—Номенклатура;
—Склад;
—Партия;
—Количество;
—Сумма.Но если требуется произвольная запись в любой созданный регистр накопления, одна универсальная табличная часть с заранее заданными колонками подходит не для всех регистров. У разных регистров будут разные измерения и ресурсы.
На экзамене обычно делают один из двух вариантов:
1. создать табличные части под конкретные регистры;
2. реализовать универсальный механизм черезМетаданные,НаборЗаписейи значения реквизитов.Для текущей задачи, где фактически есть регистр остатков товаров и, возможно, регистр продаж, практичнее создать отдельные табличные части или универсальную табличную часть с достаточным набором полей.
Важно: корректировка регистра должна создавать именно движения с регистратором
КорректировкаРегистров, а не изменять записи напрямую без регистратора.Услуги через этот документ пользователь теоретически может записать в регистр вручную, если сам этого хочет. Но документ по условию не обязан проверять корректность. Поэтому это не противоречит основному алгоритму: автоматическое проведение приходной и расходной накладной услуги в остатки не записывает, а ручная корректировка оставляет пользователю возможность самостоятельно создать произвольную запись.
## Правильная схема для этой задачи
### Приходная накладная
— товар: приход в
ОстаткиТоваров;
— услуга: движений поОстаткиТоваровнет;
— партия создается только для товара;
— услуга не участвует в методе списания.### Расходная накладная
— товар: проверка остатков, списание по партии, FIFO/LIFO/средняя;
— услуга: нет проверки остатков и расхода поОстаткиТоваров;
— товар и услуга могут записываться в обороты продаж, если нужен отчет по продажам.### Учетная политика
— хранится в периодическом регистре сведений;
— периодичность должна позволять изменение в любой день месяца, напримерВ пределах дняилиПо позиции регистра;
— при проведении выбирается значение, действующее на момент документа;
— услуги на выбор метода списания не влияют.Таким образом, в приходной накладной действительно нужно отбирать только товары:
|И Номенклатура.ВидНоменклатуры = &ВидТовара
А строки услуг либо вообще не участвуют в формировании движений, либо записываются только в отдельный регистр оборотов, если этого требуют отчетность и условие задачи.
-
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.