INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Киселев Андрей | Директор по развитию | Проектная компания ALEXROVICH.RU

«Проекты автоматизации отделов продаж на базе 1С в оптовых компаниях. Результаты ДО и ПОСЛЕ внедрения CRM-системы»

• Что такое CRM? Почему CRM-система должна быть в 1С? • Преимущества модуля CRM в базе 1С:Управление Торговлей 8 перед популярными «облачными» решениями. • На что обратить внимание в проекте внедрения CRM-системы в 1С. Что важно для успешного проекта? • Применение моделирования бизнес-процессов «AS-IS» и «TO-BE» в проектах внедрения CRM-систем. • Объединение коммуникаций в 1С: подключение IP-телефонии, эл.почты, СМС-сообщений, онлайн-чатов, обратных звонков и пр. • Использование бизнес-процессов «TO-BE» на платформе 1С для автоматизации и повышения продаж в CRM-системе. • Автоматизация расчета мотивации менеджеров по продажам: Оклад+KPI+%. Начисления и удержания (штрафы). • Отчеты в CRM-системе: «Воронки» продаж, конверсия этапов продаж, отчеты по активности менеджеров, план-факт менеджеров, сегментация клиентов, ABC-анализ клиентской базы и др. • Сквозная аналитика в CRM-системе: маркировка заявок, колл-трекинг, загрузка расходов на рекламу, анализ эффективности рекламных каналов и пр. Анализ LTV и ROMI. • TV-панели в отделе продаж с "дашбордами". • Отчеты из 1С в Telegram. Главные цифры отдела продаж на экране смартфона.

1. maguga 21 10.01.12 15:32 Сейчас в теме

Таймауты на передачу управления

Доброго времени суток.

Вопрос наверно больше филосовский. Часто бывает так, что 1с ка обращаеться к чему либо за пределы самой себя. Это может быть ком объект, может быть веб-сервис.
В данный момент запускаю внешний веб-сервис, он не отвечает, в этот момент 1с "висит". И помогает только ребут компьютера. Вопрос в следующем, можно ли все внешние вызовы запускать в какой нибудь конструкции, на которую можно поставить таймаут, либо типа цикла с обработкойПрерыванияПользователя?
Ответы
Сортировка: Древо
10. ЧерныйКот 26.12.16 14:45 Сейчас в теме
(1) может быть меня закидают помидорами, но я для искусственного таймаута использую такую процедуру :

Процедура Подождать(Секунд, Shell = Неопределено) Экспорт
	
	Попытка
		Если Shell = Неопределено Тогда
			Shell = Новый COMОбъект("WScript.Shell"); 
		КонецЕсли;
		Shell.Run("timeout /T " + Секунд + " /nobreak" ,0,True);
	Исключение
		// обработка не требуется
	КонецПопытки;
	
КонецПроцедуры
Показать
2. alex_bob 216 10.01.12 15:48 Сейчас в теме
Ну, например обернуть в фоновое задание
3. maguga 21 10.01.12 16:46 Сейчас в теме
Это будет скорее всего распаралеливание работы, когда пользователь продолжить жить своей жизнью, а фоновое задание паралельно начнет жить само по себе. Как правило результат "внешнего вызова" нужен пользователю для принятия решения в данный момент и результат фонового задание(которое когда то там выполниться) уже не интересно.

Есть еще какие то варианты?
4. Login0001 10.01.12 17:27 Сейчас в теме
Можно запускать этот внешний процесс и вешать обработчик ожидания с определенным тайм аутом... по получении результата от внешней обработки отключать обработчик.
5. maguga 21 10.01.12 18:21 Сейчас в теме
(4) Login0001, А как данная конструкция будет выглядеть?

Например.

1)Создается документ.
2)Подставляеться товар
3)запускаем вебсервис, существует ли на данный товар партнерская скидка.(управление ушло, ждем, 1с не отвечает... спустя 15 мин партнер сказал "НЕТ СКИДКИ")
4)Подставляем розничную цену.
5)Подставляем товар
3)запускаем вебсервис, существует ли на данный товар партнерская скидка.(управление ушло, ждем, 1с не отвечает... спустя 15 мин вебсервис не дал ответа, 20 минут нет ответа, покупатель устал ждать.... 1с при этом висит, кнопочки не работают)

В идеале должен быть некий "рубильник", что мол не хочу дальше ждать веб сервис, поставлю покупателю товар без скидки. Но проблема в том, что 1с отдала все упраление веб сервису, у меня нет такого рубильника
6. ВРедная 41 10.01.12 19:43 Сейчас в теме
Как 1С получает значение от веб сервиса?
Управление передали, и ждем чтобы что произошло?
Покажите как выглядит этот кусок кода.

Если есть возможность в получать состояние веб сервиса, можно использовать прерывание пользователя.
7. maguga 21 11.01.12 10:49 Сейчас в теме
(6) ВРедная,
1с получает значение так
		мПроцентПолучен=Ложь;
		мПроцент=0;
		Попытка
			если мПолучатьБаланс Тогда
				СтруктураВозврата=ВебСервисы.ПолучитьПроцентПартнера(Номенклатура);
				мПроцентПолучен=СтруктураВозврата.ПроцентПолучен;
				мПроцент=Число(СтруктураВозврата.Процент);
			КонецЕсли
		Исключение
			мПроцентПолучен=Ложь;
			мПроцент=0;
		КонецПопытки;

Показать

Вот общий модуль
Функция ПолучитьПроцентПартнера(Номенклатура) Экспорт
	ПроцентПолучен=Ложь;
	Процент=0;
	ГУИД  		= "" + Номенклатура.УникальныйИдентификатор();
	Попытка
		Прокси 				= WSССылки.Обмены.СоздатьWSПрокси("http://www.site.ru/synh", "sitepr", "siteprSoap");
		Прокси.Пользователь = "exchange";
		Прокси.Пароль 		= "pass";
		Ответ 				= Прокси.ПолучитьПроцент(ГУИД);
		ПроцентПолучен=Истина;
		Процент=Ответ;
	Исключение
		ПроцентПолучен=Ложь;
		Процент=0;
	КонецПопытки;
	
	СтруктураВозврата=Новый Структура();
	СтруктураВозврата.Вставить("ПроцентПолучен",ПроцентПолучен);
	СтруктураВозврата.Вставить("Процент",Число(Процент));
	Возврат СтруктураВозврата;
КонецФункции
Показать


Управление передали, и ждем чтобы что произошло?

Ждем чтоб нам вернулось число от партнера, ну или не вернулось :)

Если есть возможность в получать состояние веб сервиса, можно использовать прерывание пользователя.

Дело в том что, в момент работы этой строчки кода
Ответ= Прокси.ПолучитьПроцент(ГУИД);

выполняется стороняя функция, и пока она не отработает управление к 1с не вернеться. Получить состояние веб сервиса в этот момент может и можно, но мало вероятно.

Я предпологал что существуют некие режимы типа
		
                  Прокси.Пароль 		= "pass";
		УстановитьЗащищеныйРежимСТаймаутом(таймаут=100сек)
                  Ответ= Прокси.ПолучитьПроцент(ГУИД);
		ВыключитьЗащищеныйРежимСТаймаутом()
		ПроцентПолучен=Истина;


Ну или что нибудь аналогичное.
8. maguga 21 11.01.12 10:55 Сейчас в теме
в догонку.
Нашел старый кусок кода, когда стучались к аксапте
	// Создаем объект адаптера и отсылаем данные
	Попытка
		Состояние("Управление передано Аксапте. Ожидайте...");
		comAdapter  = new COMОбъект("OVK.DAXAdapter");
		waitRetMain=1200;
		waitRetTest=15;
	    retCode = comAdapter.sendRequest(СтрокаXML, waitRetMain, waitRetTest);
	Исключение
		Сообщить(ОписаниеОшибки());
		Возврат 2;
	КонецПопытки;
	Возврат retCode;

Показать

Предпологаю что таймауты тогда обрабатывали Аксаптеры, но было бы приятно еслиб это была штатная штука.
9. konuchovartem@gmail.com 26.12.16 14:36 Сейчас в теме
Web сервисы

WSПрокси.Таймаут (Timeout)
Использование:

Только чтение.
Описание:

Тип: Число.
Определяет время ожидания соединения и операций, осуществляемых объектом WSПрокси, в секундах.
0 - таймаут не установлен.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
Полный день

Удаленный программист 1С (от 800 до 1200 руб в час)
Санкт-Петербург
По совместительству

Программист 1С
Ростов-на-Дону
Полный день

Программист 1С
Москва
зарплата от 65 000 руб.
Полный день

Бизнес-аналитик 1С
Санкт-Петербург
Полный день