Учебный курс: Подготовка на 1С:Специалист по платформе 1С:Предприятие 8.3
Задачи бухгалтерского учета – тема № 17, часть 2:
Учет животных в двух оценках одновременно – выполнение настроек и ввод данных
В предыдущей части мы проанализировали текст задачи и составили план решения, теперь переходим к его выполнению.
Создание справочников
Для хранения характеристик создадим в конфигурации справочник “Характеристики”. Поскольку по условию задачи характеристика – это набор свойств, добавим в созданный справочник “Характеристики” табличную часть “Свойства” с двумя реквизитами:
- “Свойство” (тип – ПланВидовХарактеристикСсылка.СвойстваОбъектов)
- “Значение” (тип – Характеристика.СвойстваОбъектов).
Рисунок 1 – Справочник “Характеристики”
Сразу настроим связь между свойством и значением:
Рисунок 2 – Связь между свойством и значением свойства
Это позволит пользователю при работе с конкретным свойством выбирать только те значения, которые относятся к этому свойству.
По условию задачи характеристики создаются для конкретной номенклатуры, значит, справочник “Характеристики” должен быть подчинен справочнику “Номенклатура”. Для этого настраиваем владельца для справочника “Характеристики”:
Рисунок 3 – Настройка владельца для справочника “Характеристики”
Далее настроим характеристики на уровне объекта метаданных для справочника “Характеристики”:
Рисунок 4 – Настройка характеристик для справочника “Характеристики”
Поскольку перечень свойств, которые можно использовать для справочника “Характеристики”, хранится в ПВХ СвойстваОбъектов, именно этот ПВХ указываем в поле “Виды характеристик”.
Свойства и значения свойств, назначенные конкретному элементу справочника “Характеристики”, хранятся в табличной части Свойства этого элемента справочника. Поэтому именно табличную часть указываем в поле “Значения характеристик”.
Такая настройка позволит в отчетах на СКД выводить дополнительные характеристики вместе с реквизитами объектов. В настройках отчета они будут отображаться одинаково – как реквизиты объекта (в виде вложенных полей).
Переходим к настройке плана счетов, субконто и регистра бухгалтерии.
Настройка плана счетов, субконто и регистра бухгалтерии
Для организации учета в разрезе характеристик потребуется новый вид субконто – Характеристики (тип – СправочникСсылка.Характеристики).
Чтобы этот тип можно было использовать для элементов ПВХ “ВидыСубконто”, добавляем справочник “Характеристики” в тип значения характеристик для ПВХ “ВидыСубконто”.
Рисунок 5 – Настройка ПВХ “ВидыСубконто”
А затем создаем в ПВХ “ВидыСубконто” новый предопределенный элемент – Характеристики:
Рисунок 6 – Новый вид субконто
Переходим к настройке плана счетов.
Поскольку по условию задачи суммовой учет должен вестись на всех счетах, а для товаров необходимо учитывать количество и вес, создадим в плане счетов “Управленческий” признаки учета “Количественный” и “Весовой” (Подробнее про признаки учета можно почитать в первой главе раздела “Задачи бухгалтерского учета”).
Рисунок 7 – Признаки учета плана счетов “Управленческий”
Признаки учета субконто в данной задаче не используются, так как согласно условиям задачи себестоимость рассчитывается как средняя по характеристике. Это значит, что в разрезе характеристики хранится и сумма, и количество, а значит нет необходимости отключать хранение каких-либо итогов в разрезе субконто.
Добавляем виды субконто к счету “Товары” и настраиваем признаки учета
Рисунок 8 – Настройка счета “Товары”
Количественный и весовой учет на счете “ПрибылиУбытки” не включаем.
Поскольку по условию задачи счет “ПрибылиУбытки” корреспондирует со счетами “Товары” и “Покупатели”, из оборотов счета “ПрибылиУбытки” можно получить все необходимые для отчета данные:
- Обороты со счетом “Товары” – себестоимость и количество проданных товаров;
- Обороты со счетом “Покупатели” – сумма продаж товаров.
Итак, отчет будет строиться по счету “ПрибылиУбытки”, значит, на нем потребуется аналитика, аналогичная счету “Товары”.
Важно установить у обоих видов субконто (“Номенклатура” и “Характеристики”) на счете “ПрибылиУбытки” признак «Только обороты», так как используемые показатели (сумма продажи и себестоимость) являются оборотными.
Рисунок 9 – Настройка счета “ПрибылиУбытки”
Добавляем регистр бухгалтерии “Управленческий” и создаем у него следующие ресурсы:
- “Сумма” (тип – Число: длина – 12, точность – 2)
- “Количество” (тип – Число: длина – 10, точность – 0)
- “Вес” (тип – Число: длина – 15, точность – 3).
Примечание. Для значений ресурсов “Сумма”, “Количество” и “Вес” мы намеренно не исключали отрицательные значения. Возможно как сторнирование операций (при этом ресурсы записываются с отрицательными значениями), так и уменьшение веса и количества птиц в процессе их выращивания. Для отражения таких изменений может быть использован документ “Операция”.
Рисунок 10 – Ресурсы регистра бухгалтерии “Управленческий”
Поскольку в формулировке задачи указано, что “пользователь имеет возможность внести проводки в базе с произвольной корреспонденцией счетов”, для регистра бухгалтерии обязательно устанавливаем поддержку корреспонденции:
Рисунок 11 – Свойство “Корреспонденция” регистра бухгалтерии “Управленческий”
Свяжем ресурсы с признаками учета:
Рисунок 12 – Связь ресурса “Количество” с признаком учета “Количественный”
Рисунок 13 – Связь ресурса “Вес” с признаком учета “Весовой”
Это позволит связать необходимость ведения учета по определенным ресурсам регистра бухгалтерии с конкретным счетом.
Примечание. Обратите внимание, что для ресурсов “Количество” и “Вес” свойство “Балансовый” не устанавливается. Это позволяет независимо задавать различные значения ресурсов по дебету и кредиту одной проводки, т.е. в проводке эти ресурсы появятся отдельно для дебета и для кредита: “КоличествоДт”, “КоличествоКт”, “ВесДт”, “ВесКт”.
Укажем регистраторы, выполняющие движения по регистру бухгалтерии:
Рисунок 14 – Регистраторы движений регистра бухгалтерии “Управленческий”
Примечание. На этом рисунке показаны все требуемые при решении регистраторы для регистра бухгалтерии. Но мы здесь немного забежали вперед: документ “Операция” будет создан только на следующем шаге, и при его настройке будет указано, что он делает движения по регистру бухгалтерии “Управленческий”. В то же время документы “Приходная накладная” и “Расходная накладная” изначально присутствуют в каркасной конфигурации и, независимо от того, какая доработка понадобится для них в дальнейшем, на данном шаге мы можем включить их в число регистраторов регистра бухгалтерии.
Можно переходить к созданию документов.
Создание документа “Операция”
Подробно про создание документа “Операция” можно прочитать здесь: Задачи бухгалтерского учета – тема № 5: Как создать документ «Операция» для ручного ввода проводок.
Основное, что нужно помнить про документ “Операция”, – это то, что у него должно быть запрещено проведение:
Рисунок 15 – Отключение движений у документа “Операция”
Создание документа “Приходная накладная”
В шапку документа добавляем реквизит “Поставщик” (тип – СправочникСсылка.Контрагенты), а в табличную часть СписокНоменклатуры – 2 реквизита:
- “Характеристика” (тип – СправочникСсылка.Характеристики)
- “Вес” (тип – Число: длина – 15, точность – 3, неотрицательное).
Рисунок 16 – Новые реквизиты документа “Приходная накладная”
Переходим к созданию обработки проведения. Код получается достаточно простой:
Процедура ОбработкаПроведения(Отказ, РежимПроведения) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура, | ПриходнаяНакладнаяСписокНоменклатуры.Характеристика КАК Характеристика, | ПриходнаяНакладнаяСписокНоменклатуры.Количество КАК КоличествоДт, | ПриходнаяНакладнаяСписокНоменклатуры.Вес КАК ВесДт, | ПриходнаяНакладнаяСписокНоменклатуры.Сумма КАК Сумма, | ПриходнаяНакладнаяСписокНоменклатуры.Ссылка.Поставщик КАК Поставщик, | ПриходнаяНакладнаяСписокНоменклатуры.Ссылка.Дата КАК Период, | &СчетДт КАК СчетДт, | &СчетКт КАК СчетКт |ИЗ | Документ.ПриходнаяНакладная.СписокНоменклатуры КАК ПриходнаяНакладнаяСписокНоменклатуры |ГДЕ | ПриходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", Ссылка); Запрос.УстановитьПараметр("СчетДт", ПланыСчетов.Управленческий.Товары); Запрос.УстановитьПараметр("СчетКт", ПланыСчетов.Управленческий.Поставщики); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Движения.Управленческий.Записывать = Истина; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НовоеДвижение = Движения.Управленческий.Добавить(); ЗаполнитьЗначенияСвойств(НовоеДвижение, ВыборкаДетальныеЗаписи); НовоеДвижение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = ВыборкаДетальныеЗаписи.Номенклатура; НовоеДвижение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Характеристики] = ВыборкаДетальныеЗаписи.Характеристика; НовоеДвижение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты] = ВыборкаДетальныеЗаписи.Поставщик; КонецЦикла; КонецПроцедуры
Теперь можно заняться расходной накладной.
Создание документа “Расходная накладная”
Работу с документом “Расходная накладная” нужно начать с установки режима управления блокировкой данных для всей каркасной конфигурации. Для этого в свойствах корневого элемента дерева объектов метаданных устанавливаем режим “Управляемый”.
Рисунок 17 – Установка управляемой блокировки
Добавим недостающие реквизиты в табличную часть аналогично приходной накладной.
Рисунок 18 – Новые реквизиты документа “Расходная накладная”
Переходим к созданию обработки проведения.
Детально процесс реализации обработки проведения для документа «Расходная накладная» описан в теме Задачи бухгалтерского учета – тема № 6: Расчет себестоимости по средней в разрезе складов. Старая методика контроля остатков.
Код процедуры “Обработка проведения” для решения поставленной задачи выглядит следующим образом:
Процедура ОбработкаПроведения(Отказ, РежимПроведения) //1. Подготовка регистра бухгалтерии - удаление существующих движений из базы Движения.Управленческий.Записывать = Истина; Движения.Управленческий.Записать(); //2. Установка блокировки данных регистра бухгалтерии Блокировка = Новый БлокировкаДанных; Элемент = Блокировка.Добавить("РегистрБухгалтерии.Управленческий"); Элемент.Режим = РежимБлокировкиДанных.Исключительный; Элемент.УстановитьЗначение("Счет", ПланыСчетов.Управленческий.Товары); Элемент.ИсточникДанных = СписокНоменклатуры; Элемент.ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура, "Номенклатура"); Элемент.ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик.ВидыСубконто.Характеристики, "Характеристика"); Блокировка.Заблокировать(); //3. Запрос получения данных для расчета себестоимости Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура, | РасходнаяНакладнаяСписокНоменклатуры.Характеристика КАК Характеристика, | СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество, | СУММА(РасходнаяНакладнаяСписокНоменклатуры.Вес) КАК Вес, | СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК СуммаПродажи |ПОМЕСТИТЬ ТЧСписокНоменклатуры |ИЗ | Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры |ГДЕ | РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура, | РасходнаяНакладнаяСписокНоменклатуры.Характеристика | |ИНДЕКСИРОВАТЬ ПО | Номенклатура, | Характеристика |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТЧСписокНоменклатуры.Номенклатура КАК Номенклатура, | ТЧСписокНоменклатуры.Характеристика КАК Характеристика, | ТЧСписокНоменклатуры.Номенклатура.Представление КАК НоменклатураПредставление, | ТЧСписокНоменклатуры.Характеристика.Представление КАК ХарактеристикаПредставление, | ТЧСписокНоменклатуры.Количество КАК Количество, | ТЧСписокНоменклатуры.Вес КАК Вес, | ТЧСписокНоменклатуры.СуммаПродажи КАК СуммаПродажи, | ЕСТЬNULL(УправленческийОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, | ЕСТЬNULL(УправленческийОстатки.ВесОстаток, 0) КАК ВесОстаток, | ЕСТЬNULL(УправленческийОстатки.СуммаОстаток, 0) КАК СуммаОстаток |ИЗ | ТЧСписокНоменклатуры КАК ТЧСписокНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки( | &МоментВремени, | Счет = &Счет, | &МассивВидовСубконто, | (Субконто1, Субконто2) В | (ВЫБРАТЬ | ТЧСписокНоменклатуры.Номенклатура, | ТЧСписокНоменклатуры.Характеристика | ИЗ | ТЧСписокНоменклатуры КАК ТЧСписокНоменклатуры)) КАК УправленческийОстатки | ПО ТЧСписокНоменклатуры.Номенклатура = УправленческийОстатки.Субконто1 | И ТЧСписокНоменклатуры.Характеристика = УправленческийОстатки.Субконто2"; //4. Заполнение параметров запроса Запрос.УстановитьПараметр("Ссылка", Ссылка); Запрос.УстановитьПараметр("МоментВремени", МоментВремени()); Запрос.УстановитьПараметр("Счет", ПланыСчетов.Управленческий.Товары); //4.1. Определение массива видов субконто МассивВидовСубконто = Новый Массив(); МассивВидовСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура); МассивВидовСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Характеристики); Запрос.УстановитьПараметр("МассивВидовСубконто", МассивВидовСубконто); //5. Выполняем запрос и обходим выборку Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл //6. Контроль остатков Если Выборка.Количество > Выборка.КоличествоОстаток Тогда // Выдача сообщений пользователю о наличии отрицательных остатков Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Недостаточно количества товара " + Выборка.НоменклатураПредставление + " с характеристикой " + Выборка.ХарактеристикаПредставление + ". Остаток товара: " + Выборка.КоличествоОстаток; Сообщение.Сообщить(); Отказ = Истина; КонецЕсли; Если Выборка.Вес > Выборка.ВесОстаток Тогда // Выдача сообщений пользователю о наличии отрицательных остатков Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Недостаточно веса товара " + Выборка.НоменклатураПредставление + " с характеристикой " + Выборка.ХарактеристикаПредставление + ". Остаток товара: " + Выборка.ВесОстаток; Сообщение.Сообщить(); Отказ = Истина; КонецЕсли; //7. Формирование движений Если НЕ Отказ Тогда Движение = Движения.Управленческий.Добавить(); Движение.СчетДт = ПланыСчетов.Управленческий.ПрибылиУбытки; Движение.СчетКт = ПланыСчетов.Управленческий.Товары; Движение.Период = Дата; Движение.КоличествоКт = Выборка.Количество; Движение.ВесКт = Выборка.Вес; //7.1. Расчет себестоимости списания Если Выборка.Количество = Выборка.КоличествоОстаток Тогда Себестоимость = Выборка.СуммаОстаток; Иначе Себестоимость = Выборка.Количество * Выборка.СуммаОстаток / Выборка.КоличествоОстаток; КонецЕсли; Движение.Сумма = Себестоимость; //7.2. Заполнение субконто Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = Выборка.Номенклатура; Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Характеристики] = Выборка.Характеристика; Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = Выборка.Номенклатура; Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Характеристики] = Выборка.Характеристика; //8. Движения по выручке ДвижениеВыручка = Движения.Управленческий.Добавить(); ДвижениеВыручка.Период = Дата; ДвижениеВыручка.СчетДт = ПланыСчетов.Управленческий.Покупатели; ДвижениеВыручка.СчетКт = ПланыСчетов.Управленческий.ПрибылиУбытки; ДвижениеВыручка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = Выборка.Номенклатура; ДвижениеВыручка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Характеристики] = Выборка.Характеристика; ДвижениеВыручка.Сумма = Выборка.СуммаПродажи; КонецЕсли; КонецЦикла; КонецПроцедуры
Разберем важные моменты реализованного алгоритма.
- Учет ведется в разрезе номенклатуры и характеристики. Поэтому при установке управляемой блокировки, при соединении таблиц в запросе и при формировании проводок используются два поля: “Номенклатура” и “Характеристика”.
- Может возникнуть вопрос, почему нет проверки при деление на ноль в выражении
“Себестоимость = Выборка.Количество * Выборка.СуммаОстаток / Выборка.КоличествоОстаток”?
Дело в том, что в условии “Если Выборка.Количество > Выборка.КоличествоОстаток Тогда” уже заложена такая проверка. Если в расходной накладной списывается любое ненулевое количество, то в случае нулевого остатка сработает именно это условие. Единственный случай, когда это условие не будет работать – это указание нулевого количества в расходной накладной. Что очень сложно представить. Если есть необходимость исключить этот вариант, то нужно вставить проверку на нулевое количество в табличной части расходной накладной. Например, установить свойство “Проверка заполнения” реквизита табличной части “Количество” в значение “Выдавать ошибку”. - В указанной выше теме Расчет себестоимости по средней в разрезе складов. Старая методика контроля остатков проводка для отражения выручки не требуется, поэтому и не формируется. В решаемой задаче эта проводка нужна, поэтому дополнительно создается проводка по счету “ПрибылиУбытки” в корреспонденции со счетом “Покупатели”.
- Для построения отчета необходима заполненная аналитика на счете “ПрибылиУбытки”, поэтому при формировании проводок по этому счету заполняются два субконто: Номенклатура и Характеристика.
- В постановке задачи явно указано, что вес птиц при продаже в документе “Реализация товаров” указывается пользователем вручную. Поэтому при формировании движений используется вес, указанный в табличной части. Если этого уточнения в тексте нет, нужно найти в формулировке задачи, как должен определяться вес при списании. Например, он может рассчитываться точно так же, как и себестоимость.
Отдельно выделим следующее – корректность с точки зрения закрытия остатков “в ноль”
При оформлении продажи в документе “Реализация товаров” вес птиц указывается вручную, поэтому может возникнуть ситуация, когда количество списывается полностью – а вес при этом “в ноль” не списывается. Возникает ситуация, когда по одному ресурсу операция закрыта (остатки нулевые), а по другому ресурсу – нет (остаток не нулевой).
Аналогично, возможно, что вес списывается в ноль, но при этом количество не списывается полностью.
В постановке задачи подобные проверки не описаны. Поэтому ситуация двойственная.
С одной стороны, мы признаем это ненормальным и есть минимум пять вариантов действий:
- Блокировать такие операции, то есть не допускать ввод операций еще при попытке их проведения. Плюс этого варианта – “быстро, жестко, наглядно”, минус – сильно зависит от актуальности рассчитанных остатков и нужно учитывать особенности группового проведения или проведений задним числом.
- Выводить предупреждение / диагностическое сообщение без блокировки операции. Быстро, наглядно, но без излишней жестокости : ) Точно также критично зависит от актуальности остатков, точно также потребуется учитывать логику группового проведения или проведений задним числом, корректируя вывод предупреждений.
- Логировать такие ошибки, без оперативных предупреждений. Применять как при ручном проведении документа, так и при групповых операциях. Регулярно автоматически проверять ошибки в логах, при обнаружении оповещать пользователя / администратора. Добавить функцию очистки логов после исправления ошибок.
- Встроить отчет, который будет обнаруживать ситуации с нулевыми остатками по одному ресурсу и ненулевые по другому. Это быстро и просто, но нет гарантии, что пользователь будет это делать, все на его усмотрение. С другой стороны, это позволит быстрее исправлять такие ситуации, если они массовые / завязаны друг на друга.
- Автоматически занулять остатки – то есть при проведении операции сразу списывать в ноль второй остаток (ведомый), если в ноль уходит первый (ведущий). Нужно только четко договориться, что является ведущим остатком (количество / вес), но для задачи Аттестации можно предположить, что все-таки количество. Как это сделать мы разбираем в основном курсе подготовки к Аттестации по платформе.
Исходная формулировка задачи в том вопросе неоднозначна и не содержит никаких указаний на то, что делать с такими ситуациями. На очной Аттестации можно подойти к преподавателю и задать уточняющие вопросы, но в дистанционной форме такой возможности нет.
Мы моделируем дистанционную сдачу Аттестации, поэтому развернутую проверку не реализовываем, используем первый вариант из предложенных. Не разрешаем проводить документ, в котором количество списывается полностью, а вес при этом не списывается полностью (и наоборот – вес списывается полностью, а количество не списывается полностью).
Для этого в приведенную процедуру обработки проведения расходной накладной в п. 6 необходимо добавить следующий программный код:
Если (Выборка.Количество = Выборка.КоличествоОстаток) И (Выборка.Вес <> Выборка.ВесОстаток) Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "По товару " + Выборка.НоменклатураПредставление + " с характеристикой " + Выборка.ХарактеристикаПредставление + " количество списывается полностью, а вес при этом не списывается полностью. Остаток по количеству: " + Выборка.КоличествоОстаток + ". Остаток по весу: " + Выборка.ВесОстаток; Сообщение.Сообщить(); Отказ = Истина; КонецЕсли; Если (Выборка.Вес = Выборка.ВесОстаток) И (Выборка.Количество <> Выборка.КоличествоОстаток) Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "По товару " + Выборка.НоменклатураПредставление + " с характеристикой " + Выборка.ХарактеристикаПредставление + " вес списывается полностью, а количество при этом не списывается полностью. Остаток по весу: " + Выборка.ВесОстаток + ". Остаток по количеству: " + Выборка.КоличествоОстаток; Сообщение.Сообщить(); Отказ = Истина; КонецЕсли;
Переходим к вводу тестовых данных в пользовательском режиме.
Создание контрольного примера
Для начала заполняем справочники тестовыми данными.
Создаем элементы справочника “Номенклатура” – Курица и Утка.
Поскольку справочник “Характеристики” подчинен справочнику “Номенклатура”, в панели навигации формы элемента справочника “Номенклатура” расположена ссылка для перехода к характеристикам конкретной номенклатуры. Значит, быстро создавать характеристики можно прямо из формы номенклатуры.
При создании характеристик заполняем табличную часть – указываем свойства и их значения:
Для получения отчета, приведенного в постановке задачи, необходимо создать по паре характеристик со свойством “Цвет” и значением свойства ”Белая” и “Черная” для каждой из птиц – Курицы и Утки. Также создадим произвольное количество дополнительных свойств (на рисунке это “Назначение”).
Введем приходную накладную и проведем ее:
Приходная накладная сформировала следующие проводки
Обратите внимание, что ресурсы регистра бухгалтерии “Количество” и “Вес” заполнены только для счета “Товары”. Это результат работы механизма признаков учета.
Создадим документ “Операция” для отражения увеличения веса птицы:
Обратите внимание, что в дебете проводки указан только вес, а количество не заполнено. Таким образом, вес птиц увеличивается, а количество птиц при этом не изменяется.
Создадим документ “Расходная накладная” и проведем его.
При попытке провести такой документ получим сообщение об ошибке:
Рисунок 24 – Сообщение об ошибке при проведении документа “Расходная накладная”
(нажмите, чтобы увеличить картинку)
Дел в том, что с учетом введенных в операции данных остаток веса курицы с набором свойств “Черная – Яйценоская” составляет 4120, а остаток количества 200. В расходной накладной происходит попытка списать все количество при частичном списании веса. Поэтому, согласно принятым нами правилам, срабатывает защита от “зависания” остатка одного из ресурсов, и документ не проводится.
Если исправить вес так, чтобы и он списывался полностью, документ будет успешно проведен:
Рисунок 25 – Вариант полного расхода остатка количества и веса в документе “Расходная накладная”
Документ будет также успешно проведен, если и вес, и количество списываются не полностью:
Рисунок 26 – Вариант неполного расхода остатка количества и веса в документе “Расходная накладная”
Для дальнейшей работы включим в наш пример оба варианта: и частичное (строка 1), и полное (строки 2-4) списание остатков веса и количества:
Рисунок 27 – Окончательный вариант документа “Расходная накладная”
(нажмите, чтобы увеличить картинку)
Проводки документа “Расходная накладная”
Расходная накладная сформировала по две проводки на каждую строку табличной части: одна проводка списывает себестоимость, другая отражает выручку от продажи. Себестоимость списалась корректно, при этом было учтено увеличение стоимости птицы, отраженное при помощи документа “Операция”.
Тестовые данные введены, можно приступать к разработке отчета.
Комментарии закрыты