Учим Лайку новым трюкам: заказы с предоплатами, выгрузка накладных из 1С

Расширение Лайка позволяет просматривать данные IIKO по заказам и предоплатам, приходным и расходным накладным, не покидая 1С. Кроме того, в последней версии добавлен функционал создания накладных на основании приобретений 1С одним нажатием.

Арт.: 1104705

banquet.jpg
доставка.jpg
01.png
01.png
02.png
03.png
04.png
05.png
06.png
07.png
08.png
09.png
sendInvoice.gif
banquet.jpg
доставка.jpg
01.png
01.png
02.png
03.png
04.png
05.png
06.png
07.png
08.png
09.png
sendInvoice.gif

14400 руб.

2500 руб.

Вместо предисловия

Первой черновой версии этой публикации уже чуть более года. Наконец пришло осознание, что пора поделиться накопленными решениями.

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

Компания IIKO запретила выполнение SQL-запросов и Groovy-скриптов в своих облачных решениях, чем дала повод для переосмысления ряду проектов, использовавших не классические схемы обмена. Некоторые описываемые далее приемы базируются на SQL-запросах, которым есть место в коробочных решениях.

Вступление

Мне понравилось собирать информацию по крупицам и создавать сущности IIKO прямиком в при реализации Лайки. Однако без решения реальной прикладной проблемы все это не более, чем набор полезных и удобных функций для узкоспециализированного взаимодействия. Не framework конечно, но фундамент для программиста.

Далее рассмотрим несколько успешных кейсов использования.

Детальные данные о продажах

А чем не устраивают данные стандартной выгрузки? Ну, к примеру, хотя бы отсутствием инструмента для учета предзаказов.

Прежде всего, давайте поразмышляем, чем же смена с наличием банкетных заказов отличается от смены без таковых? Как правило, если у нас нет предоплат, то сумма выручки идентична сумме реализации в рамках смены. Именно такие данные грузятся в 1С типовой выгрузкой без каких-либо вопросов. То есть в розничных продажах нет места задолженностям за пределами смены.

Наша команда неоднократно задумывалась над решением этой задачи, потому что периодически возникали подобного рода запросы от клиентов. Однако простого решения в лоб так и не нашлось. Были различные варианты с комбинированием сведений, доступные в типовых сценариях обмена, и данных, которые можно получить посредством OLAP и SQL.

В конечном счете представилась возможность для более глубокого и детального изучения структуры таблиц с данными сервера IIKO. А если ключевая доля сведений извлекается посредством SQL-запросов, то зачем плодить сущности и усложнять алгоритмы, добавляя другие способы получения данных? Именно поэтому акцент делается на извлечении данных из таблиц.

В Лайке уже присутствовали методы, явно упрощающие взаимодействие с сервером, однако этого было недостаточно и были добавлены пара объектов XDTO и унифицированная функция запроса.

Function RequestSQL(sqlRequest, sqlParameters = Undefined) Export
	
	ActiveConnection = like_ConnectionAtServer.GetActiveConnecton();
	If ActiveConnection = Undefined Then
		LogWrite(NStr("en = 'No active connection'; ru = 'Подключение неактивно'"));
		Return Undefined;
	EndIf;
	
	ConnectionFields = like_ConnectionAtServer.GetConnectionFields(ActiveConnection);
	
	ObjectFields = like_CommonAtServer.GetObjectFieldsStructure();
	ObjectFields.ConProps  	 = ConnectionFields;
	ObjectFields.Resource 	 = "/resto/service/maintance/sql.jsp";
	ObjectFields.Namespace 	 = "https://izi.cloud/iiko/read/sql";
	ObjectFields.TypeName 	 = "root";
	ObjectFields.RequestType = "GET";
	
	If sqlParameters <> Undefined Then
		For each parameter In sqlParameters Do
			sqlRequest = StrReplace(sqlRequest, "["+String(parameter.Key)+"]", parameter.Value);
		EndDo;	
	EndIf;
	Params = New Map;
	Params.Insert("sql", sqlRequest);
	ObjectFields.Parameters  = Params;
	
	ObjectFields.isGZIP	 = False;
	ObjectFields.Headers     = like_Common.GetIIKOHeaders(ConnectionFields, ObjectFields.isGZIP);
	
	IIKOObject = like_CommonAtServer.GetIIKOObject(ObjectFields);	
	If IIKOObject = Undefined Then
		LogWrite(NStr("en = 'Receiving data from IIKO server error'; ru = 'Ошибка получения данных с сервера IIKO'"));
		Return Undefined;	
	EndIf;
	
	Return IIKOObject;
	
EndFunction

Благодаря новым методам, без особого труда можно получить результат в таблицу. Прямое обращение к таблицам SQL позволяет реализовывать всевозможные неклассические схемы получения данных в многочисленных разрезах и выборках.

Создание документов 

Первые исследовательские версии обработок изобиловали прямыми вставками XML-сущностей и повторяющимися секциями однотипного кода. Передача документа требует реализации ряда вопросов: от соотнесения значений реквизитов до обработки сбоя отправки XML-пакета в случае, когда сервер IIKO "предлагает" другой номер.

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

Безусловно, все технические моменты не должны усложнять работу бухгалтера.

В зависимости от бизнес-процессов и пожеланий заказчика возможны различные сценарии интеграции. Наиболее распространенные из них - ручной и автоматический. При ручном варианте бухгалтер целиком контролирует процесс и следит за корректностью введенных данных и создаваемых документов.

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

Быстрый старт

Данный раздел посвящен нетехническим специалистам и малоинтересен программистам, поэтому спрятан в спойлер.

 
Инструкция для пользователя

Версии программного обеспечения

Платформа - 1С:Предприятие 8.3 (8.3.13.1690). По идее подойдет и гораздо старше, начиная с появления методов для работы с HTTP, строковые функции типа СтрРазделить.

Конфигурации - Управление торговлей, редакция 11 (11.4.12.102), Комплексная автоматизация 2 (2.4.13.203).

IIKO - работа проверена на IIKO RMS 7.4.6020.0

Статистика:
Просмотры 24009
Загрузки 3
Рейтинг 6
Создание 15.10.20 15:40
Обновление 09.08.21 16:35
№ Публикации 1104705
Характеристики:
Теги
Рубрики Розничная торговля Внешние источники данных Банковские операции Кассовые операции
Кому Программист ,
Пользователь
Тип файла Расширение (cfe)
Платформа Платформа 1С v8.3 ,
Оперативный учет
Конфигурация 1С:Управление торговлей 11
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Рестораны, кафе и фаст-фуд
Налоги Не имеет значения
Вид учета Управленческий учет
Доступ к файлу Платные (руб)
Код открыт Да
1. AntoShiK86 22.03.21 06:45 Сейчас в теме
Подскажите, знакомые ввязались в ресторанный бизнес по франшизе, и там надо иметь айку, но им удобней/привычней работать в 1с Бухгалтерии. Сколько стоит комплекс ваших доработок для работы с БП 3.0. ?
Опишите общими словами процессы, которые уже автоматизированы, как например:
1)Может выгружать номенклатуру в Айко ( односторонний обмена).
2)Может выгружать приходную накладную в Айку и т.д.

Если, есть 5 летний опыт работы с разными конфигурациями как консультант и сисадмин, сможем ли мы сами подключить все или нужна помощь программиста (ваша)? Уточню База БП3.0 типовая релиз 3.0.89
Дата выхода релиза: 08.02.2021.

П.с. не знаю, что предложить вашу схему или у раруса вроде был односторонний обмен в общепите.
2. Техподдержка 09.08.21 16:47
(1) Здравствуйте

Анализ и проработка инфраструктуры - отдельный проект, поэтому просто вот так с лету не подскажу.

1) Номенклатура из 1С в IIKO не создается. Однако, многое зависит от задачи. Если необходима разовая выгрузка - это один сценарий, если нужно выгружать автоматически по расписанию - другой, интерактивно - третий;
2) Да, приобретения можно выгружать (в анимированной картинке как раз этот сценарий).
3. user926352 24.06.22 02:51 Сейчас в теме
Здравствуйте!
Может глупость спрошу, но теоретически возможно ли добавить в iiko выставление счетов на оплату (без контроля их оплаты или с контролем - не важно), только счета, по реквизитам контрагента? (специфика работы - оптовые заказы на кондитерку, от розницы уходим, но iiko очень удобна для всего).
4. Техподдержка 24.06.22 10:02
(3) Здравствуйте.
Большинство современных учетных систем позволяют выставлять счета на оплату, например такой функционал есть в Бухгалтерии предприятия.

Что означает "добавить в IIKO"? Вам нужна доработка бэк-офиса с расширением функционала?
Данная публикация посвящена интеграционному решению с конфигурациями 1С. Доработкой и изменением IIKO не занимаемся.

В IIKO Front существует система плагинов. Сопровождающие организации часто предлагают услуги по их разработке. Возможно описанный функционал удастся реализовать таким способом. Но по моему личному мнению это долго, дорого и экономически нецелесообразно. Проще использовать готовые решения.
5. user926352 24.06.22 14:49 Сейчас в теме
Спасибо за наводку по разработке плагинов!

Оставьте свое сообщение

См. также

Автоматический заказ поставщику в 1С: загрузка прайсов и анализ цен поставщиков для УТ 10.3, УТ 11, КА2, УНФ, УПП, ERP, Розни...

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортим...

33529 28500 руб.

SALE! 15%

ЕГАИС++. Опт, производство, импорт

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и...

8970 руб.

Перенос данных из Парус 10 в ЗГУ ред.3

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ)...

60000 руб.

Перенос данных из Парус 8 в ЗГУ 3

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) ...

84000 руб.

Автоматическая многопоточная выгрузка данных 1С 8.3 в БД Clickhouse и MS SQL (для работы с данными 1С в BI-системах)

Готовое решение для автоматизированной выгрузки данных из 1С 8.3, а также MS Excel в базу данных ClickHouse, а также в Microsoft SQL для работы с данными 1С в Yandex Datalens, Visiology, Apache Superset (и не только) - "Экстрактор данн...

230000 руб.

88005555256
Заказать звонок
support@infostart.ru
Telegram
Чат на сайте