Киселев Андрей | Директор по развитию | Проектная компания 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. cmotosl 30.10.16 07:10 Сейчас в теме
Доброе утро,

Нужна ваша помощь

Необходимо следующее, после нажатия кнопки Оплатить Картой в открытой форме ЧекККМ, сделать проверку остатков на складе, что бы сотрудники не могли провести операцию по Карте, в том случае если хотя бы одного товара который добавлен в документ ЧекККМ не окажется на складе.

вот код самой кнопки


Процедура КоманднаяПанельТоварыОплатитьКартой(Кнопка)
	
		ОплатитьКартой(СуммаОплаты);
		
КонецПроцедуры // КоманднаяПанельТоварыОплатитьКартой()

Показать


Вполне устраивает поведение кнопки ОК которой проводится документ, и в случае если хотя бы одного товара нет на складе, документ не проводится, и выводится Информирующее сообщение об ошибке, но мне документ проводить не нужно, а нужно сначала перед вызовом процедуры ОплатитьКартой(СуммаОплаты) проверить остатки на складе и если Товар на складе есть, то тогда вызвать Процедуру ОплатитьКартой(СуммаОплаты), а если нет товара тогда вывести сообщение с ошибкой и информацией какого товара не хватает для продолжения.

Пожалуйста помогите, буду очень признателен =)

"1с 8.2" "Управление торговлей", редакция 10.3 (10.3.34.1)
Ответы
Сортировка: Древо
2. cmotosl 31.10.16 01:54 Сейчас в теме
Временное решение

В модуле ЧекККМ пока что сделал так...


Функция ПровестиДляПроверкиОстатков(Ответ, Отказ, ФормаДокумента) Экспорт

	Результат = Истина;
	Ответ     = "";

	Попытка
		ФормаДокумента.ЗаписатьВФорме(РежимЗаписиДокумента.Проведение);
	Исключение
		Ответ     = "Ошибка при попытке проведения документа!";
		Отказ     = Истина;
		Результат = Ложь;
	КонецПопытки;
	
	Возврат Результат;
	
КонецФункции // ПровестиИРаспечататьЧек()

Показать


Код кнопки изменил на

Процедура КоманднаяПанельТоварыОплатитьКартой(Кнопка)

	Перем Ответ;
	Перем Отказ;

	Если ПровестиДляПроверкиОстатков(Ответ, Отказ, ЭтаФорма) Тогда
		ОплатитьКартой(СуммаОплаты);
	Иначе
		Предупреждение(?(Отказ, "Возможны расхождения ИБ и ленты ФР! ", "") + Ответ);
	КонецЕсли;

КонецПроцедуры // КоманднаяПанельТоварыОплатитьКартой()

Показать


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

Люди ну помогите решить проблему, что бы был контроль остатков без проводки документа.....
3. alxarz 29 31.10.16 02:04 Сейчас в теме
нужно просто открыть процедуру ОбработкаПроведения и найти в ней вызов функции которая как раз и проверяет наличие необходимых остатков на складе.
4. cmotosl 31.10.16 02:13 Сейчас в теме
Можно Вас попросить если Вам не сложно, напишите готовый код, который будет работать и проверять остатки, честно уже несколько дней ломаю голову и никак не могу решить эту задачу, смог пока найти только один выход который описал выше..
5. alxarz 29 31.10.16 02:30 Сейчас в теме
вот пробежался по коду, нашел процедуру

// Процедура контролирует остаток по данному регистру по переданному документу
// и его табличной части. В случае недостатка товаров выставляется флаг отказа и 
// выдается сообщение.
//
// Параметры:
//  ДокументОбъект     - объект проводимого документа, 
//  ИмяТабЧасти        - строка, имя табличной части, которая проводится по регистру, 
//  СтруктураШапки     - структура, содержащая значения "через точку" ссылочных реквизитов по шапке документа,
//  ОтказПроведения    - флаг отказа в проведении,
//  ЗаголовокСообщения - строка, заголовок сообщения об ошибке проведения.
//
Процедура КонтрольОстатков(ДокументОбъект, ИмяТабЧасти, СтруктураШапки, ОтказПроведения, ЗаголовокСообщения) Экспорт

Показать


УТ у меня правда старенькая 10.3.18.3 но думаю что в новой это тоже осталось. Тут весь код уже написан по сути.

P.S.: несколько дней ломаете голову над этой задачей бесплатно ради интереса?
14. GeRon 31.10.16 08:28 Сейчас в теме
Вам ответили в (5) посте, достаточно вставить в вашу кнопку вызов процедуры и подхватывать результат ее работы с соответствующей обработкой.

Вы не хотите сами внести изменения в код, а хотите чтобы это сделал кто-то НО бесплатно, так не бывает. Труд должен быть оплачен. Не можете сами кодить - вызовите специалиста, котрый за умеренную плату вам это сделает.
15. cmotosl 31.10.16 13:09 Сейчас в теме
(14)
Спасибо вам вы очень любезны, спасибо что сказали про 5 пункт.

Вы не хотите сами внести изменения в код, а хотите чтобы это сделал кто-то НО бесплатно, так не бывает..

Бывает вы прочитайте мои посты выше, просто меня попросили, я ищу решение, если Вы Желаете помочь, буду только рад.

Труд должен быть оплачен. Кто же спорит, просто я обратился на бесплатный форум за помощью, для этого он существует ))
6. cmotosl 31.10.16 02:40 Сейчас в теме
Да Вы правы, можно и так сказать бесплатно ради интереса.

Не сочтите за наглость, есть у вас время ?, написать готовое решение, только без проведения.
7. alxarz 29 31.10.16 02:53 Сейчас в теме
(6) а чем временное решение не устраивает? добавить одну строчку...

Функция ПровестиДляПроверкиОстатков(Ответ, Отказ, ФормаДокумента) Экспорт

    Результат = Истина;
    Ответ     = "";

    Попытка
        ФормаДокумента.ЗаписатьВФорме(РежимЗаписиДокумента.Проведение);
       ФормаДокумента.ЗаписатьВФорме(РежимЗаписиДокумента.ОтменаПроведения);     ////////////<<<<<<<<<<<
    Исключение
        Ответ     = "Ошибка при попытке проведения документа!";
        Отказ     = Истина;
        Результат = Ложь;
    КонецПопытки;
    
    Возврат Результат;
    
КонецФункции // ПровестиИРаспечататьЧек()
Показать
9. cmotosl 31.10.16 02:58 Сейчас в теме
(7)
Тоже думал, но если уполномочить кассира такими правами, то боюсь может это плохо закончится, т.к. если кассир задумает отменить чек который проведён на ККМ то всё поедет и будут не нужные расхождения по 1С и по ККМ
8. cmotosl 31.10.16 02:55 Сейчас в теме
// Процедура контролирует остаток по данному регистру по переданному документу
// и его табличной части. В случае недостатка товаров выставляется флаг отказа и 
// выдается сообщение.
//
// Параметры:
//  ДокументОбъект     - объект проводимого документа, 
//  ИмяТабЧасти        - строка, имя табличной части, которая проводится по регистру, 
//  СтруктураШапки     - структура, содержащая значения "через точку" ссылочных реквизитов по шапке документа,
//  ОтказПроведения    - флаг отказа в проведении,
//  ЗаголовокСообщения - строка, заголовок сообщения об ошибке проведения.
Процедура КонтрольОстатков(ДокументОбъект, ИмяТабЧасти, СтруктураШапки, ОтказПроведения, ЗаголовокСообщения) Экспорт
Показать


Тут я уже был, просто не могу понять как сослаться на эту процедуру что бы от контролировать остатки без проведения документа, т.к. по кнопке Оплатить картой проводиться документ не должен, а только контроль и если всё нормально то тогда вызывать уже - ОплатитьКартой(СуммаОплаты);
10. cmotosl 31.10.16 03:00 Сейчас в теме
Вот поэтому и хочу решить данный вопрос без проводки.
11. cmotosl 31.10.16 03:05 Сейчас в теме
Может можно отменить проводку документа не наделяя правами Роль Кассира, например в процедуре сделать некое исключение из правил и после проведения, отменить проводку, но что бы сам кассир этого сделать не смог.

Вообще данную процедуру я взял из

// Функция осуществляет проведение документа и печать чека на ФР.
//
// Параметры:
//  Ответ    - <Строка>
//           - Выходной параметр; описание произошедшей ошибки.
//
//  Отказ    - <Булево>
//           - Выходной параметр; признак отказа от выполнения операции.
//
// Возвращаемое значение:
//  <Булево> - Истина в случае успешного завершения операции.
//
Функция ПровестиИРаспечататьЧек(Ответ, Отказ, ФормаДокумента, РучнойРежимПечати = Ложь) Экспорт

	Результат = Истина;
	Ответ     = "";

	Попытка
		ФормаДокумента.ЗаписатьВФорме(РежимЗаписиДокумента.Проведение);
	Исключение
		Ответ     = "Ошибка при попытке проведения документа!";
		Отказ     = Истина;
		Результат = Ложь;
		Возврат Результат;
	КонецПопытки;
Показать
12. cmotosl 31.10.16 03:28 Сейчас в теме
Alx Alx (alxarz), Вы сможете мне помочь ?

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

Вся надежда на Вас )))
13. cmotosl 31.10.16 07:39 Сейчас в теме
Тема актуальна, пожалуйста помогите решить задачу.
16. alxarz 29 31.10.16 13:14 Сейчас в теме
1) правильно
2) быстро
3) бесплатно

выбираете 2 критерия, которые Вам важны в написании кода, хотя по постам я полагаю 1-й и 3-й, поэтому бесплатно и правильный код придется подождать))
17. cmotosl 31.10.16 19:34 Сейчас в теме
Не ужели все так серьезно, понятно что за все надо платить, не ужели так сложно написать код, если все на столько просто, и Вы знаете куда копать
18. GeRon 01.11.16 13:24 Сейчас в теме
(17) как вы правильно заметили форум создан для помощи обмена информацией, но не для бесплатных внедрений и доработок. Решение вам предоставили, причем полностью бесплатно.
19. cmotosl 01.11.16 20:25 Сейчас в теме
Да я вижу что я уже где-то близко, просто не могу понять как мне правильно описать данную процедуру в 1С, что бы она звучала примерно так...

Код самой кнопки

Процедура ОсновныеДействияФормыОплатаКартой(Кнопка)

	Перем Отказ;
      Перем Ответ;

	Если ПроверяемОстаткиПередОплатой(Ответ, Отказ, ЭтаФорма) Тогда
		ОплатитьКартой(СуммаОплаты);
	Иначе                                                             
		Предупреждение(?(Отказ, "Возможны расхождения ИБ и ленты ФР! ", "") + Ответ);
	КонецЕсли;


КонецПроцедуры 
Показать


И Модуль

Функция ПроверяемОстаткиПередОплатой(Ответ, Отказ, ФормаДокумента, РучнойРежимПечати = Ложь) Экспорт

	Результат = Истина;
	Ответ     = "";

	Попытка
		КонтрольОстатков(ЭтотОбъект, "Товары", Отказ, Ответ);

	Исключение
		Ответ     = "Ошибка при попытке оплатить картой!";
		Отказ     = Истина;
		Результат = Ложь;
		Возврат Результат;
	КонецПопытки;

Показать

Ну помогите, правда ну очень нужно, пожалуйста не пинайте я пока ещё зелёный в этом вопросе =(((
20. cmotosl 02.11.16 19:51 Сейчас в теме
21. cmotosl 03.11.16 16:16 Сейчас в теме
помогите решить проблему )
22. cmotosl 05.11.16 21:20 Сейчас в теме
Ну что так и никто не напишет решение, или никто не знает как написать это условие для 1С, помогите делом пжл.
Оставьте свое сообщение

Вакансии

Менеджер по продажам проектов 1С
Санкт-Петербург
Полный день

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

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

Консультант по внедрению 1С
Новосибирск
Полный день

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