Описание форматов импорта и экспорта и примеры интеграции Cenobraz с другими программами Программа для максимизации прибыли путём применения ценообразования, управляемого спросом

Описание программы Cenobraz | Рекоммендации по использованию
Все тексты пользовательских (клиентских) программ приводятся для ознакомления с тем, как примерно будет выглядеть рабочая программа, а не для непосредственного применения. Рабочие программы будут отличаться в разных версиях разных учётных систем. Для написания рабочей программы для интеграции конкретной учётной системы необходимо обратиться к специалистам.

Формат CSV

Формат CSV - текстовый формат, предназначенный для представления табличных данных. Каждая строка файла - это одна строка таблицы. Значения отдельных ячеек таблицы разделяются запятой. Для представления дробных десятичных значений ячеек используется точка. Значения, содержащие зарезервированные символы, такие как запятая или двойные кавычки ("), заключаются в двойные кавычки. Если в значении встречаются кавычки — они представляются в файле в виде двух кавычек подряд. Строки разделяются парой символов: CR (0x0D) и LF (0x0A).

Файл формата CSV можно обрабатывать с помощью табличного процессора типа Excel, простого текстового редактора типа Блокнот, а также с помощью большого количества бухгалтерских и торгово-складских систем учёта, имеющих возможность пользовательского программирования.

Пример импортируемого файла с данными реальных продаж в формате CSV здесь. Успешно импортирован будет только файл в кодировке Windows-1251, имеющий указанный порядок следования столбцов: "Артикул", "Наименование", "Единица измерения", "Начальная дата", "Конечная дата", "Нормальная продолжительность", "Переменные издержки", "Себестоимость", "Цена", "Количество проданного товара".

Порядок следования столбцов в файле экспорта рекомендуемых цен и наценок (прайс-листе) следующий: "Артикул", "Наименование", "Дата", "Цена", "Наценка".

Формат XML

XML - текстовый формат, предназначенный для хранения структурированных данных и обмена информацией между программами. XML - это описанная в текстовом формате иерархическая структура, предназначенная для хранения любых данных. Визуально структура может быть представлена как дерево элементов. Элементы XML описываются тегами.

Файл формата XML можно обрабатывать с помощью простого текстового редактора типа Блокнот, а также с помощью большого количества бухгалтерских и торгово-складских систем учёта, имеющих возможность пользовательского программирования.

Пример импортируемого файла с данными реальных продаж в формате XML здесь. Для успешного импортирования необходимо использовать кодировку UTF-8, либо указать используемую кодировку в заголовке файла, а также соблюдать синтаксис.

Пример экспортируемого файла с рекомендуемыми ценами и наценками (прайс-листа) в формате XML здесь. Кодировка UTF-8. Экспортируются только рассчитанные на текущую дату цены для всех выделенных (в верхней таблице) продуктов.

Пример экспорта из "1С:Предприятие 8.0" файла продаж в формате CSV для импорта в Cenobraz

Для создания возможности экспортирования файла продаж в необходимом формате в 1С необходимо создать обработку, в которой будет производиться создание и запись этого файла на диск. В диалоге основной формы обработки необходимо разместить элемент управления Кнопка с процедурой, которая будет выглядеть примерно так:
Процедура Записать(Кнопка)
ПапкаОбмена="C:\";//Необходимо установить папку обмена
ТД=Новый ТекстовыйДокумент; ТД.УстановитьТипФайла(КодировкаТекста.Windows1251);
ТД.ДобавитьСтроку("Артикул, Наименование, Единица измерения, Начальная дата, "+
"Конечная дата, Нормальная продолжительность, "+
"Переменные издержки, Себестоимость, Цена, Количество проданного товара");
Выборка=Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Если Не Выборка.ЭтоГруппа Тогда
СтрокаКСВ=Символ(34)+Строка( Выборка.Код )+Символ(34)+","+ //Артикул
Символ(34)+СтрЗаменить( Выборка.Наименование ,Символ(34),Символ(34)+Символ(34))
+Символ(34)+","+ //Наименование
Символ(34)+СтрЗаменить( Выборка.ЕдиницаИзмерения ,Символ(34),Символ(34)+Символ(34))
+Символ(34)+","+ //Единица измерения
Выборка.НачальнаяДата +","+ //Начальная дата
Выборка.КонечнаяДата +","+ //Конечная дата
Выборка.НормальнаяПродолжительность +","+ //Нормальная продолжительность
Выборка.ПеременныеИздержки +","+ //Переменные издержки
Выборка.Себестоимость +","+ //Себестоимость
Выборка.Цена +","+ //Цена
Выборка.КоличествоПроданногоТовара ; //Количество проданного товара
ТД.ДобавитьСтроку(СтрокаКСВ);
КонецЕсли;
КонецЦикла;
ТД.Записать(ПапкаОбмена+"SalesReport.csv");
КонецПроцедуры

Пример импорта в "1С:Предприятие 8.0" файла рекомендуемых цен в формате CSV, экспортированного программой Cenobraz

Для создания возможности импортирования файла рекомендуемых цен в формате CSV в 1С необходимо создать обработку, в которой будет производиться чтение этого файла и запись полученной информации в регистр цен. В диалоге основной формы обработки необходимо разместить элемент управления Кнопка с процедурой:
Процедура Прочитать(Кнопка)
ПапкаОбмена="C:\";//Необходимо установить папку обмена
ТД=Новый ТекстовыйДокумент;   //ТД.УстановитьТипФайла(КодировкаТекста.UTF8);
ТД.Прочитать(ПапкаОбмена+"pricelist.csv");
Заголовок=ТД.ПолучитьСтроку(1);
Для ТекущаяСтрока=2 По ТД.КоличествоСтрок() Цикл
СтрокаКСВ=ТД.ПолучитьСтроку(ТекущаяСтрока);
СтрокаКСВ=СтрЗаменить(СтрокаКСВ,Символ(34)+Символ(34),Символ( 03 ));
КавычкаОткрыта=Ложь; НачалоЯчейки=1; НомерЯчейки=1;
Для ТекущийСимол=1 По СтрДлина(СтрокаКСВ) Цикл
Если КавычкаОткрыта Тогда
Если Сред(СтрокаКСВ,ТекущийСимвол,1)=Символ(34) Тогда КавычкаОткрыта=Ложь; КонецЕсли;
Иначе
Если Сред(СтрокаКСВ,ТекущийСимвол,1)="," Тогда
Ячейка=СтрЗаменить(СтрЗаменить(Сред(СтрокаКСВ,НачалоЯчейки,ТекущийСимвол-НачалоЯчейки),
Символ(34),""),Символ( 03 ),Символ(34));
Если НомерЯчейки=1 Тогда Артикул=Ячейка;
Иначе Если НомерЯчейки=2 Тогда Наименование=Ячейка;
Иначе Если НомерЯчейки=3 Тогда Дата=Ячейка;
Иначе Цена=Ячейка; КонецЕсли; КонецЕсли; КонецЕсли;
НачалоЯчейки=ТекущийСимвол+1; НомерЯчейки=НомерЯчейки+1;
Иначе Если Сред(СтрокаКСВ,ТекущийСимвол,1)=Символ(34) Тогда КавычкаОткрыта=Истина; КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Наценка=СтрЗаменить(СтрЗаменить(Сред(СтрокаКСВ,НачалоЯчейки,ТекущийСимвол-НачалоЯчейки),Символ(34),""),
Символ( 03 ),Символ(34));
//Запись непосредственно в регистр
Цены=РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
Цены.Отбор.Регистратор.Установить(ЭтотОбъект.Ссылка)
Цены.Регистратор=ЭтотОбъект.Ссылка;
Цены.Период=Дата;
Цены.ТипЦен= ТипЦен ; //Установить необходимый тип цен
Цены.Номенклатура= Номенклатура ; //Предварительно определить по Артикулу
Цены.Валюта= ВалютаДокумента ; //Установить необходимую валюту
Цены.Цена=Цена;
Цены.Записать();
//Но если у регистра установлен регистратор, желательно делать при проведении документа через "Движения" так:
//Движение=Движения.Цены.Добавить();
//Движение.Период=Дата;
//Движение.ТипЦен= ТипЦен ;
//Движение.Номенклатура= Номенклатура ;
//Движение.Валюта= ВалютаДокумента ;
//Движение.Цена=Цена;
КонецЦикла;
КонецПроцедуры