Задание на разработку комплекта отчетов
Конфигурация
| Управление торговлей , ред. 10.3, релиз: 10.3.16.1
| Платформа
| 1С:Предприятие 8.2
|
Необходимо создать обработку, которая будет формировать 5 отчетов. Результаты этих отчетов должны быть выгружены в dbf файлы. Все файлы затем сжимаются в один архив, архив отправляется по электронной почте. Формируются 2 вида отчетов – недельный и месячный. Тип отчета определяется периодом отчета.
Запускать обработку, устанавливать период отчета пользователь будет вручную. По нажатию на кнопку Выполнить открывается диалог, где выбирается каталог, в котором сохраняются файлы отчетов. (или на форме сделать реквизит, где выбираем каталог формирования файлов). Затем файлы выгружаются в этот каталог, архивируются автоматически и этот архив отправляется как вложение в письмо прямо из 1с через встроенный почтовый клиент. Обработка должна иметь следующие реквизиты:
Наименование реквизита
| Назначение
| Дата начала,
| Начало периода отчета. Всегда выбирается начало месяца. Если отчет месячный, берем начало прошлого месяца
| Дата окончания
| День, предшествующий дате формирования отчета. Для месячного отчета – конец прошлого месяца
| Поставщик
| Тип – справочник Контрагенты, в отчеты отбираются товары, у которых значение реквизита «Основной поставщик» равно значению реквизита «Поставщик» данной обработки.
Сохранять последнее выбранное значение – при открытии формы подставлять его в реквизит
| Тип цен
| Тип цен, который используется для определения цены товара, указанной в отчете. Сохранять последнее выбранное значение – при открытии формы подставлять его в реквизит
| Адрес , на который надо отправлять письмо с файлами берем из данных контрагента, который выбран в поле Поставщик обработки. Берем из контактной информации, тип - E mail, вид электронной почты "Адрес электронной почты контрагента для обмена электронными документами" - предопределенное значение
Все отчеты формируются в коробках. Необходимо выполнять пересчет, т.к. товар приходуется и продается в штуках. Для каждого товара заданы 2 ед. измерения – штука и коробка. У коробок для разных товаров может быть разный коэффициент пересчета. Коробка указана в реквизите «Единица измерения для отчетов» справочника Номенклатура. Пожелания по реализации кода:
Во всех отчетах используется значение – Код организации. Лучше завести переменную, в которой один раз присвоить это значение, чтобы можно было потом его в одном месте поменять. Для тестирования обработки
Создать тестовую базу. В базе нужно сделать следующие настройки
Создать одну организацию. Для нее настроить параметры учетной политики
Для товаров создать 2 единицы измерения, штуки и коробки. Коробку указать в реквизите «Единица измерения для отчетов» справочника Номенклатура.
В приходных и расходных документах товар указывать в штуках.
Создать пользователей. Для пользователей настроить параметр Основной ответственный
– чтобы ответственный автоматически проставлялся в документах. Так же заполнить реквизит Физическое лицо.
Создать тип цен Оптовая. Установить цену типа «Оптовая» для товаров с помощью. Документа «Установка цен номенклатуры».
Далее приводится подробное описание каждого отчета и требования к формату почтового сообщения. Форма №1: Отчет о продажах Отчет содержит данные по продажам за период формирования отчета. В отчет отбираются товары, у которых значение реквизита «Основной поставщик» равно значению реквизита «Поставщик» из формы обработки. Можно взять данные для отчета из регистра «Продажи».
N пп
| Поле dbf файла
| Тип, размер (формат)
| Описание
| 1
| DistrId
| Char, 15
|
| 2
| Cust_Id
| Char, 15
| Код клиента
| 3
| Item_Id
| Char, 10
| Код товара
| 4
| QTY
| Number, 9.3
| Отгруженное количество, в коробках!
| 5
| Amount
| Number, 12.2
| Сумма отгрузки без налогов
| 6
| AmTaxes
| Number, 12.2
| Сумма отгрузки, включая все налоги
| 7
| Date
| Date, dd.mm.yyyy
| Дата отгрузки
| 8
| Rash_Num
| Char, 20
| Номер расходной накладной
| 9
| Inv_Num
| Char, 20
| Номер счета фактуры
| 10
| TTN_Num
| Char, 20
| Номер товарно-транспортной накладной
| 11
| Loc_Id
| Char, 20
| Код склада дистрибьютора
| 12
| PointId
| Char, 10
| Код торговой точки клиента
| 13
| MngId
| Char, 10
| Кодторгового представителя, осуществившего данную отгрузку
| 14
| MngFamily
| Char, 200
| Фамилияторгового представителя, осуществившего данную отгрузку
| 15
| MngName
| Char, 200
| Имяторгового представителя, осуществившего данную отгрузку
| 16
| MngSurnm
| Char, 200
| Отчествоторгового представителя, осуществившего данную отгрузку
| 17
| MngType
| Char, 5
| Тип торгового представителя:
| Пояснения по полям таблицы:
DistrId - всегда равен 217201
Cust_Id (Код клиента)– Код клиента,. Код контрагента из справочника Контрагенты
Item_Id (Код товара) – Штрих-код товара – берем из регистра сведений ШтрихКоды. У товаров, попадающий в отчеты только один штрихкод
QTY (Количество) –Отгруженное количество продукции в коробках (cучетом возвратов.Возвраты всегда учитываются со знаком “-”). Необходимо выполнять пересчет, т.к. товар приходуется и продается в штуках. Для каждого товара заданы 2 ед. измерения – штука и коробка. У коробки коэффициент=10. Коробка указана в реквизите «Единица измерения для отчетов» справочника Номенклатура.
Amount (Сумма отгрузки без налогов)–Сумма отгрузки без налогов (с учетом возвратов. Возвраты всегда учитываются со знаком “-”).
AmTaxes (Сумма отгрузки с налогами) – Сумма отгрузки включая все налоги (с учетом возвратов. Возвраты всегда учитываются со знаком “-”).
Date (Дата отгрузки)– Дата отгрузки (возврата) в формате: дд.мм.гггг, например 01.04.2012.
Rash_Num (Номер расходной накладной) – Номер документа «Реализация товаров Услуг», по которой проводилась отгрузка товара. Если были возвраты, то указывается номер документа, которым оформлен возврат (ВозвратТовараОтПокупателя, Корректировкареализации)
Inv_Num (Номер счета-фактуры) – Номер счета-фактуры, оформленного к документу Реализация товаров Услуг.
TTN_Num (Товарно-транспортная накладная) – не заполняем
Loc_Id (Код склада) – Код склада отгрузки в справочнике «Склады»
PointId (Код торговой точки клиента) – Код торговой точки клиента, на которой отгружается продукция. = Код Покупателя в справочнике Контрагенты + «1».
MngId (Код торгового представителя) – код пользователя, оформившего документ движения. берем из реквизита документа «Ответственный»- код элемента справочника Пользователи.
MngFamily (Фамилия) – Фамилия торгового представителя. Берем из реквизита ФизЛицо элемента справочника Пользователи.
MngName (Имя) – Имя торгового представителя. Берем из реквизита ФизЛицо элемента справочника Пользователи.
MngSurnm (Отчество) – Отчество торгового представителя. Берем из реквизита ФизЛицо элемента справочника Пользователи.
.
MngType – Тип торгового представителя, всегда равен «ОП»
Название файла с отчетностью:
В названии файла отчета присутствуют:
Идентификатор файла – R (латинская). Говорито том, что это файл отчета о продажах;
Дата отчета (в формате дд.мм.г). Календарная дата формирования отчета;
Идентификатор периодичности отчета – W (латинская), M (латинская). Указывает на период данных, который содержится в отчете, W – week/неделя, M – month/месяц.
Номер файла, всегда равен 1
Примеры.
Еженедельный отчет, предоставленный 17 августа 2012 года, будет называться:
R17082W1.dbf.
Ежемесячный отчет, предоставленный 03 августа 2012 года, будет называться:
R03082M1.dbf.
Форма №2: Отчет о движении товаров на складах
Данный отчет содержит данные о движении товаров (приход, расход) за каждый день периода формирования отчета. Включает так же информацию о начальных и конечных остатках на каждый день. Важно: в отчете не учитываются приходы от поставщика, только приходы в результате возвратов от покупателей, оприходования товара, перемещения с других складов. Если в какой-либо день периода отчетов движения товаров не было, данные об этом дне все равно в отчет попадают, приход и расход нулевые, и фактические остатки.
В отчет отбираются товары, у которых значение реквизита «Основной поставщик» равно значению реквизита «Поставщик» из формы обработки. Для формирования отчета лучше использовать регистр ПартииТоваровНаСкладах, там есть реквизит «Код операции» по нему делать отбор.
N пп
| Поле dbf файла
| Тип, размер (формат)
| Описание
| 1
| DistrID
| Char, 15
|
| 2
| Item_Id
| Char, 10
| Код товара
| 3
| RestBegin
| Number, 9.0
| Остаток продукции (коробка) на начало дня
| 4
| In_QTY
| Number, 9.0
| Приход на склад, коробка
| 5
| Out_QTY
| Number, - 9.0
| Расход со склада (со знаком “-“), коробки
| 6
| RestEnd
| Number, 9.0
| Остаток на конец дня(коробка)
| 7
| Date
| Date, dd.mm.yyyy
| Дата движения
| 8
| Loc_Id
| Сhar, 20
| Код склада
| 9
| Loc_Name
| Char, 50
| Название склада
| 10
| Loc_Add
| Char, 200
| Адрес склада
| 11
| CurPrice
| Number, 9.2
| Текущая цена товара с НДС
|
Пояснения по полям таблицы:
DistrID всегда равен 217201
Item_Id (Код товара) – Штрих-код товара – берем из регистра сведений ШтрихКоды. У товаров, попадающий в отчеты только один штрихкод
RestBegin (Остаток на начало) – Остаток продукции на начало дня в коробках доступный для продаж (т.е. не находящиеся в резерве);. Равен остатку продукции на конец предыдущего дня.
In_QTY (Приход)– Поступления продукции на склад. Возвраты на склад не проданной продукции (брак и пр.) от клиентов, перемещения с других складов.
Out_QTY (Расход) – Выбытия продукции со склада. Продажа продукции клиентам, перемещение продукции на другие склады дистрибьютора, уничтожение брака и пр. Значения выбытия в отчете всегда отражаются со знаком минус (-).
RestEnd – (Остаток на конец дня)Остаток товара на конец дня в коробках доступный для продаж (т.е. не находящиеся в резерве ), который будет равено статку на начало следующего дня.
(Остаток на начало дня) + (Приход) + (-Расход)= (Остаток на конец дня)
Returns (Возвраты) – Возвраты продукции на склад дистрибьютора
Date (Дата движения) – Дата движения товара на складах . Дата в формате: дд.мм.гггг.
Loc_Id (Код склада) – Код склада из справочника Склады
Loc_Name (Наименование склада) –
Loc_Add (Адрес склада– берем фактический адрес организации – в базе одна организация, находим ее и берем ее адрес
CurPrice(Цена за еденицу продукции) – переделяется по типу цены, указанной в настройках отчета
Название файла с отчетностью:
В названии файла отчета присутствуют:
Идентификатор файла – S (латинская). Говорит о том, что это файл отчета о движении на складах;
Дата отчета (в формате дд.мм.г). Календарная дата формирования отчета;
Идентификатор периодичности отчета – W (латинская), M (латинская). Указывает на период данных, который содержится в отчете, W – week/неделя, M – month/месяц.
Номер файла, всегда равен 1
Пример.
Еженедельный отчет, предоставленный 17 августа 2012 года, будет называться
S17082W1.dbf.
Ежемесячный отчет, предоставленный 15 августа 2012 года, будет называться:
S15082M1.dbf. Форма №3: Отчет о поступлении товаров от поставщика на склады Отчет предназначен для детализации поступлений товаров от поставщика на склады организации в разрезе каждой товарно-транспортной накладной. В отчет выбираются документы ПоступлениеТоваровУслуг от поставщика, указанного в настройках обработки в реквизите «Поставщик» Отчет можно делать по документам (только проведенные) или по регистру ПартииТоваровнаСкладах.
N пп
| Наименование
| Тип, размер (формат)
| Описание
| 1
| DistrID
| Char, 15
| Код организации
| 2
| Item_Id
| Char, 10
| Код товара
| 3
| TTN_Num1
| Char, 15
| Номер ТТН
| 4
| Inv_Num1
| Char, 15
| Номер заказа
| 5
| In_QTY
| Number, 9.0
| Количество продукции, поступившей на склад в коробках
| 6
| Date
| Date, dd.mm.yyyy
| Дата движения
| 7
| Loc_id
| Char, 20
| Код склада
| 8
| Remarks
| Char, 200
| Комментарии
|
Пояснения по полям таблицы:
DistrID всегда равен 217201
Item_Id (Код товара) – Штрих-код товара – берем из регистра сведений ШтрихКоды. У товаров, попадающий в отчеты только один штрихкод
TTN_Num1 (Номер ТТН) – из реквизита НомерВходящегоДокумента документа ПоступлениеТоваровУслуг
Inv_Num1 (Номер счета-фактуры) – из реквизита НомерВходящегоДокумента документа СчетФакутураПолученный для выбранного документа ПоступлениеТоваровУслуг
In_QTY (Приход) – Поступления в коробках товара на склад .
Returns (Возвраты) – Возвраты продукции на склад дистрибьютора
Date (Дата поступления) – Дата поступления товара на складах . Дата в формате: дд.мм.гггг, например 01.09.2004. – дата документа ПоступлениеТоваровУслуг
Loc_Id (Код склада) – Код Склада из документа ПоступлениеТоваровУслуг
Remarks (Комментарии) – не заполнять
Название файла:
В названии файла отчета присутствуют:
Идентификатор файла – I (латинская). Говорит о том, что это файл отчета о поступлениях на склад дистрибьютора;
Дата отчета (в формате дд.мм.г). Календарная дата формирования отчета;
Идентификатор периодичности отчета – W (латинская), M (латинская). Указывает на период данных, который содержится в отчете, W – week/неделя, M – month/месяц.
Номер файла, в случае, если дистрибьютор присылает данные из нескольких учетных систем. Нумерация файлов начинается со значения 1. Если у дистрибьютора одна учетная система, то по умолчанию номер должен быть 1.
Пример.
Еженедельный отчет, предоставленный 17 августа 2012 года, будет называться:
I17082W1.dbf.
Ежемесячный отчет, предоставленный 03 августа 2012 года, будет называться:
I03082M1.dbf.
Форма №4: Клиентская база организации (Карточки клиентов)
В отчет попадают сведения о покупателях, по которым за период отчета были отгрузки товаров или возвраты. Данные о продажах и возвратах берутся по товарам, у которых значение реквизита «Основной поставщик» равно значению реквизита «Поставщик» из формы обработки. Т.е. в отчет должны попасть сведения о покупателях, отгрузки которым попали в отчет № 1.
N пп
| Наименование
| Тип, размер
| Описание
| 1
| DistrID
| Char, 15
| Код организации
| 2
| Cust_ID
| Char, 15
| Код клиента
| 3
| CustName
| Char, 200
| Наименование клиента
| 4
| INN
| Char, 12
| ИНН клиента
| 5
| CustCityId
| Char, 13
| Код города юр. адреса клиента (из справочника КЛАДР)
| 6
| CustAdd
| Char, 200
| Индекс, название населенного пункта (города), название улицы, дома, корпуса, квартиры (номер офиса) юр. адреса клиента
|
Отчет содержит только карточки клиентов, которые покупают продукцию РУСПРОД.
DistrID - всегда равен 217201
Cust_ID (Код клиента)– Код покупателя из справочника Контрагенты.
CustName (Наименование клиента) – Юридическое название клиента. – реквизит ПолноеНаименование
INN (ИНН клиента) – ИНН клиента.Данное поле обязательно должно быть заполнено. Формат поля подразумевает наличие ИНН 10 или 12 символов.
CustCityId (Код города клиента) – 13-ти значный код из регистра АдресныйКлассификатор – как определить см. ниже
CustAdd (Адрес клиента) – Юридический адрес клиента. Взять из регистра Контактная информация
CustDest (Название населенного пункта клиента) – название населенного пункта юридического адреса клиента, проставляется из справочника Классификатора адресов Российской Федерации (КЛАДР).
CustCityId (Код города) – Классификационный код города юр. адреса клиента, проставляется из справочника Классификатора адресов Российской Федерации (КЛАДР).
CustDestID (Код города) – Классификационный код города юр. адреса клиента, проставляется из справочника Классификатора адресов Российской Федерации (КЛАДР).
CustAddress (Адрес клиента) – Юридический адрес клиента. Не путать с адресом торговой точки клиента !!! Проставляется произвольно и несет справочный характер.
Как определить код города:
В регистре сведений Контактная информация содержатся данные об адресе контрагента – берем фактический адрес
В поле Поле4 находится название города, но к нем еще прилеплена буква «г». Если это не город, а поселок, то его название находится в поле Поле5.
В Поле2 храниться название региона, в Поле3 – название района, в Поле1 – почтовый индекс
В конфигурации есть регистр сведений АдресныйКлассификатор. Он заполняется данными из классификатора КЛАДР.
в котором и содержится интересующий нас код – в поле Код. Нужно взять из него первые 13 символов и поместить в поле CustCityId dbf файла
Но сделать это не очень просто. Ведь даже в одном регионе могут быть несколько населенных пунктов с одним наименованием, но один город, а другой поселок, например.
Алгоритм примерно такой (можно свой придумать) – из регистра Контактная информация берем Поле4 (или Поле5, если Поле4 пустое), очищаем его от букв сокращений «г» и т.п. Так же получаем название региона из поля Поле2, тоже очищаем от сокращений.
В регисре АдресныйКлассификатор сначала определяем код региона – ищем по наименованию регион и берем значение измерения КодРегионаВКоде. Затем ищем запись, где КодРегионаВКоде = коду нашего региона и Наименование= Наименование нашего населенного пункта. И еще надо проверить на совпадение сокращение из регистра АдресныйКлассификатор и из регистра КонтарктнаяИнформация. Если это поселок, то надо также выполнять проверку на совпадение кода района. Для нас поселки это актуально, много клиентов в сельской местности.
Название файла:
В названии файла отчета присутствуют:
Идентификатор файла – С (латинская). Говорит о том, что это файл Клиентской базы;
Дата отчета (в формате дд.мм.г). Календарная дата формирования отчета;
Идентификатор периодичности отчета – W (латинская), M (латинская). Указывает на период данных, который содержится в отчете, W – week/неделя, M – month/месяц.
Номер файла =1.
Примеры.
Еженедельный отчет, предоставленный 17 августа 2012 года, будет называться:
С17082W1.dbf.
Ежемесячный отчет, предоставленный 03 августа 2012 года, будет называться:
С03082M1.dbf.
С актуальной базой данных классификатора КЛАДР можно ознакомиться на сайте Главного научно-исследовательского вычислительного центра Министерства по налогам и сборам http://www.gnivc.ru.
Форма №5: Отчет о торговых точках клиентов
Данный отчет содержит данные о торговых точках покупателей. Считается, что у каждого покупателя одна торговая точка, ее адрес совпадает с фактическим адресом покупателя из регистра сведений Контактная информация. Данные о покупателях в отчет попадают точно так же, как в отчет № 4. Т.е. отчет 4 и 5 содержат одинаковый список клиентов.
N пп
| Наименование
| Тип, размер
| Описание
| 1
| DistrID
| Char, 15
| Код организации
| 2
| Cust_ID
| Char, 15
| Код клиента
| 3
| PointId
| Char, 10
| Код торговой точки клиента
| 4
| PointNick
| Char, 200
| Указать фактический адрес покупателя
| 5
| PntCityId
| Char, 13
| Код города торговой точки клиента (код города из фактического адреса покупателя)
| 6
| PointAdd
| Char, 200
| Индекс, название населенного пункта (города), название улицы, дома, корпуса, квартиры (номер офиса) фактического адреса торговой точки клиента
| 7
| Channel
| Char, 4
| Тип торговых точек
| 8
| Desc
| Char, 200
| Комментарии по торговой точке- не заполнять
|
DistrID всегда равен 217201
Cust_Id (Код клиента) – Код клиента,. Код контрагента из справочника Контрагенты
PointId (Код торговой точки клиента) – Код торговой точки клиента, на которой отгружается продукция. Формируется как : Код контрагента в справочнике Контрагенты + «1».
PointNick (Наименование торговой точки клиента) – в качестве названия рекомендуется использовать фактический адрес покупателя – из регистра КонтактнаяИнформация
PntCityId (Код города) – 13-ти значный Код города/населенного пункта из фактического адреса клиента . см. Как определить код города в описании отчета № 4
PointAdd (Адрес торговой точки)– Название улицы, дома, корпуса, квартиры (номер офиса) торговой точки клиента. Берется из фактического адреса Контрагента – из регистра КонтактнаяИнформация
Channel (Тип торговой точки) - см. ниже
Записи в таблице должны быть уникальными. Дублирование записей не допускается.
Как учитывать тип торговой точки
Для справочника Контрагенты определить свойство «Тип торговой точки»
Тип значения свойства - Значения свойств объектов.
Для тестирования занести два значения этого свойства – WHS, MWP и присвоить эти свойства контрагентам
В файл выводить значение свойства «Тип торговой точки» данного контрагента
Название файла:
В названии файла отчета присутствуют:
Идентификатор файла – P (латинская). Говорит о том, что это перечень торговых точек;
Дата отчета (в формате дд.мм.г). Дата отчета – дата формирования отчета, тогда как данные в отчете содержаться за неделю;
Идентификатор периодичности отчета – W (латинская), M (латинская). Указывает на период данных, который содержится в отчете, W – week/неделя, M – month/месяц.
Номер файла, в случае, если дистрибьютор присылает данные из нескольких учетных систем. Нумерация файлов начинается со значения 1. Если у дистрибьютора одна учетная система, то по умолчанию номер должен быть 1.
Пример.
Еженедельный, предоставленный 17 августа 2012 года, будет называться:
P17082W1.dbf.
Ежемесячный отчет, предоставленный 03 августа 2012 года, будет называться:
P03082M1.dbf.
Требования к формату почтового сообщения
Тело сообщения с фалами отчетов должно содержать служебную строку с кодом организации, обрамленного знаком #,: #217201#. Эта же строка должна быть указана в теме сообщения.
Файлы с отчетностью (DBF - формата) должны предоставляться в запакованном виде во вложении к письму. Упаковка файла производиться с помощью архиватора WinRAR версии, не ниже 3.20.
Название файла вложения должно иметь следующую структуру: ГГММДДNФ.rar
где,
ГГ – год ;
ММ - месяц посылки;
ДД - дата посылки;
N - номер посылки. Номер посылки используется, если было несколько посылок в данный день (если одна, то ставиться 1).
Ф - номер филиала, =1.
Пример: 12083111.rar |