На днях сразу 2 организации, которые до этого занимались только производством и оптовой продажей, решили завести свои розничные магазины. И учет им в рознице необходи только суммовой с использованем 42 счета. Версия программы 1С УСН 7.7 (делал для 172-го релиза). Решил поделиться своим опытом решения данной ситуации.
Нам придется внести изменения в 3 основных документа: Поступление, Перемещение и Реализация. Но начнем с добавления 2-х новых констант.
- ХА_РозничныйТовар - тип Справочник.Номенклатура
- ХА_ЗакупочныеЦены - тип Справочник.ТипыЦен
Для константы ХА_РозничныйТовар необходимо будет потом установить ту номенклатуру, которая будет фигурировать в качестве субконто для 41-го счета в рознице. Т.е., т.к. по условию задачи у нас в рознице учет суммовой, то нет смысла вести 41-й счет в разрезе номенклатуры, поэтому у нас будет одна обобщенная номенклатура, например, с наименованием "Товар".
Для константы ХА_ЗакупочныеЦены необходимо будет установить закупочный тип цен. Они будут регистрироваться при поступлении и в дальнейшем будут подставляться при перемещении из розницы в опт.
Далее меняем документ ПоступлениеМПЗ.
Добавляем новый реквизит табличной части "Наценка" (тип число).
В модуле формы, после объявления переменных пишем:
// ХА Процедура ПриВыбореМестаХранения() Если МестоХранения.ТипСклада = Перечисление.ТипыСкладов.Розничный Тогда Форма.Наценка.Видимость(1); Форма.СуммаВРознице.Видимость(1); Иначе Форма.Наценка.Видимость(0); Форма.СуммаВРознице.Видимость(0); КонецЕсли; КонецПроцедуры // ХА
Из названия процедуры можно догадаться, что ее необходимо прописать в реквизите МестоХранения.
В этом же модуле формы добавляем вызов этой процедуры (ПриВыбореМестаХранения()) в процедуре ПриОткрытии():
Процедура ПриОткрытии() ПриЗаписиПерепроводить(1); ПриВыбореМестаХранения(); // ХА ...
Далее меняем модуль документа(см. в прикрепленном файле). На этом с документом поступления все. Переходим к самому сложному - ПеремещениеМПЗ.
Добавляем 4 новых числовых реквизита табличной части:
- ХА_РозничнаяСумма
- ХА_РозничнаяЦена
- ХА_ЗакупочнаяСумма
- ХА_ЗакупочнаяЦена
В начале модуля формы, после объявления переменных пишем:
// ХА Процедура ПриВыбореМестаХранения() Если (МестоХранения.ТипСклада = Перечисление.ТипыСкладов.Розничный) и (МестоХраненияПриемник.ТипСклада <> Перечисление.ТипыСкладов.Розничный) Тогда Форма.ХА_ЗакупочнаяЦена.Видимость(1); Форма.ХА_РозничнаяЦена.Видимость(1); Форма.ХА_ЗакупочнаяСумма.Видимость(1); Форма.ХА_РозничнаяСумма.Видимость(1); ИначеЕсли (МестоХранения.ТипСклада <> Перечисление.ТипыСкладов.Розничный) и (МестоХраненияПриемник.ТипСклада = Перечисление.ТипыСкладов.Розничный) Тогда Форма.ХА_ЗакупочнаяЦена.Видимость(0); Форма.ХА_РозничнаяЦена.Видимость(1); Форма.ХА_ЗакупочнаяСумма.Видимость(0); Форма.ХА_РозничнаяСумма.Видимость(1); ИначеЕсли (МестоХранения.ТипСклада <> Перечисление.ТипыСкладов.Розничный) и (МестоХраненияПриемник.ТипСклада <> Перечисление.ТипыСкладов.Розничный) Тогда Форма.ХА_ЗакупочнаяЦена.Видимость(0); Форма.ХА_РозничнаяЦена.Видимость(0); Форма.ХА_ЗакупочнаяСумма.Видимость(0); Форма.ХА_РозничнаяСумма.Видимость(0); ИначеЕсли (МестоХранения.ТипСклада = Перечисление.ТипыСкладов.Розничный) и (МестоХраненияПриемник.ТипСклада = Перечисление.ТипыСкладов.Розничный) Тогда Форма.ХА_ЗакупочнаяЦена.Видимость(0); Форма.ХА_РозничнаяЦена.Видимость(1); Форма.ХА_ЗакупочнаяСумма.Видимость(0); Форма.ХА_РозничнаяСумма.Видимость(1); КонецЕсли; Если (МестоХранения.ТипСклада <> Перечисление.ТипыСкладов.Розничный) или (МестоХраненияПриемник.ТипСклада <> Перечисление.ТипыСкладов.Розничный) Тогда Если (МестоХранения.ТипСклада <> Перечисление.ТипыСкладов.Розничный) и (МестоХраненияПриемник.ТипСклада <> Перечисление.ТипыСкладов.Розничный) Тогда Форма.Контрагент.Видимость(0); Форма.Договор.Видимость(0); Иначе Форма.Контрагент.Видимость(1); Форма.Договор.Видимость(1); КонецЕсли; Иначе Форма.Контрагент.Видимость(0); Форма.Договор.Видимость(0); КонецЕсли; КонецПроцедуры Процедура ХА_Пересчет() Если (МестоХранения.ТипСклада = Перечисление.ТипыСкладов.Розничный) или (МестоХраненияПриемник.ТипСклада = Перечисление.ТипыСкладов.Розничный) Тогда СпрЦены = СоздатьОбъект("Справочник.Цены"); СпрЦены.ИспользоватьВладельца(Номенклатура); СпрЦены.ВыбратьЭлементыПоРеквизиту("ТипЦен",Константа.ХА_ЗакупочныеЦены); Если СпрЦены.ПолучитьЭлемент() = 1 Тогда ХА_ЗакупочнаяЦена=СпрЦены.Цена.Получить(ДатаДок); ХА_ЗакупочнаяСумма = Количество*СпрЦены.Цена.Получить(ДатаДок); ХА_РозничнаяСумма = ХА_ЗакупочнаяСумма; КонецЕсли; КонецЕсли; КонецПроцедуры Процедура ХА_ПриИзмененииЦены() ХА_ЗакупочнаяСумма = Количество*ХА_ЗакупочнаяЦена; ХА_РозничнаяСумма = Количество*ХА_РозничнаяЦена; КонецПроцедуры // ХА
Вызов процедуры ПриВыбореМестаХранения() проставляем для 2-х реквизитов: МестоХранения и МестоХраненияПриемник. Для реквизита количество ставим вызов процедуры ХА_Пересчет(), а для реквизитов ХА_ЗакупочнаяЦена и ХА_РозничнаяЦена ставим вызов процедуры ХА_ПриИзмененииЦены().
Еще в этом же модуле формы корректируем процедуры:
Процедура ПриВыбореНоменклатуры() Если Номенклатура.ТипНоменклатуры <> Перечисление.ТипыНоменклатуры.Материал Тогда Контрагент = ""; Договор = ""; КонецЕсли; ХА_Пересчет(); // ХА КонецПроцедуры // ПриВыбореНоменклатуры() ... Процедура ПриОткрытии() ПриЗаписиПерепроводить(1); ПриВыбореМестаХранения(); // ХА ...
Далее меням модуль документа ПеремещениеМПЗ (см. в прикрепленном файле).
И последний документ - это Реализация. Меняем в нем модуль документа:
// Проверим достаточно ли МПЗ на складе. Если (МестоХранения.ТипСклада <> Перечисление.ТипыСкладов.Розничный) Тогда // ХА ТоварыКоличество = СоздатьОбъект("ТаблицаЗначений"); ВыгрузитьТабличнуюЧасть(ТоварыКоличество, "Номенклатура, Количество"); ТоварыКоличество.Свернуть("Номенклатура", "Количество"); ТоварыКоличество.ВыбратьСтроки(); ... КонецЕсли; // ХА
Немного поясню этот кусок кода. При реализации происходит проверка достаточности МПЗ на складе. Мы добавляем условие, чтобы эта проверка не происходила для розничного склада.
И еще одна вставка:
//Списание по договорам поставки //Принимаемые материалы (10.2) //Принимаемые товары (41.2) //Товары на комиссии (004) //Принимаемые товары и материалы, переданные на комиссию (КМС.1) //Товары переданные на субкомиссию (КМС.2) Если (Номенклатура.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Товар) или (Номенклатура.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.ТоварНаКомиссии) или (Номенклатура.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Материал)Тогда НеобходимоСписатьКоличество = Количество; // ХА Если (МестоХранения.ТипСклада = Перечисление.ТипыСкладов.Розничный) и (Номенклатура.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Товар) Тогда Если НеобходимоСписатьКоличество = 0 Тогда Операция.НоваяПроводка(); Операция.НомерЖурнала = "ТВ"; Если ЕНВД = 1 Тогда Операция.Дебет.Счет = СчетПоКоду("90.3"); Операция.Дебет.Субконто(1, Номенклатура.ВидДеятельности); Операция.Кредит.Счет = Сч41_1; Операция.Кредит.Номенклатура = Константа.ХА_РозничныйТовар; Операция.Кредит.Субконто(2, МестоХранения); Операция.Количество = Количество; Операция.Сумма = Сумма; Операция.СодержаниеПроводки = "Списание МПЗ"; Иначе Операция.Дебет.Счет = СчетПоКоду("90.4"); Операция.Дебет.Субконто(1, Номенклатура.ВидДеятельности); Операция.Кредит.Счет = Сч41_1; Операция.Кредит.Номенклатура = Константа.ХА_РозничныйТовар; Операция.Кредит.Субконто(2, МестоХранения); Операция.Количество = Количество; Операция.Сумма = Сумма; Операция.СодержаниеПроводки = "Списание МПЗ"; КонецЕсли; КонецЕсли; КонецЕсли; // ХА Если (НеобходимоСписатьКоличество > 0) и (Номенклатура.ТипНоменклатуры <> Перечисление.ТипыНоменклатуры.ТоварНаКомиссии) и (ЕНВД = 1) Тогда
Вот вроде и все. В результате всех этих изменений можно будет вести розничную торговлю. Подводя итог, отмечу некоторые моменты:
- При поступлении товаров в розницу указываем в документе ПоступлениеМПЗ наценку и т.о. формируются проводки по 42-му счету
- Все товары, которые хранятся на розничном складе, для простоты учитываются на счете 41.1 (не зависимо от того покупной это товар или перемещенная собственная продукция, которая напрашивается на 41.2)
- Для счета 41.1 я добавил дополнительное субконто МестаХранения, чтобы было проще смотреть оборотку по магазинам
- При перемещении всегда(кроме перемещения опт-опт) делаются проводки по 41(или 43) счету. Партии товаров при перемещении из опта в розницу подбираются автоматически.
- Приход розничной выручки оформляем документом Реализация и затем вводим на основании этого документа приходник.
- При перемещении опт-розница и наоборот могут возникнуть вопросы, связанные с налоговым учетом, особенно если стоит порядок признания расходов "По оплате поставщику". Т.е.,например, может быть по товару уже признаны расходы, а мы этот товар перемещаем из опта в розницу. Поэтому лучше порядок признания расходов выбрать "По факту реализации" или "По факту получения дохода"
- Ну и наконец прикрепляю еще отчет "Товарный отчет".
Все.
Прикрепленный файл | Размер | Хиты | Последнее скачивание |
---|---|---|---|
module_postuplenie.txt | 18.33 кб | 2975 | 3 дня 1 час назад |
module_peremeshenie.txt | 62.82 кб | 2804 | 11 часов 2 минуты назад |
Tovarnyy_otchet.ert | 50.5 кб | 2831 | 3 дня 2 часа назад |
Недавно случилась та же ситуация с ронизой, очень неплохой метод у Вас!
Комсомольск-на-Амуре
Отправить комментарий