ABC анализ клиентов

1. 14.09.21 11:14 Сейчас в теме +0.2 $m
Подскажите, сейчас реализована запись в регистр ABC клиентов за год оформляется в декабре текущего года. Например за 2020 год данные собираются в регистр в декабре 2020 года и только после этого они могут быть отражены. Есть ли какая то возможность настройки данного момента, чтобы сотрудники могли просматривать информацию уже за этот год, не дожидаясь декабре и где это можно исполнить
Вознаграждение за ответ
Показать полностью
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. M_A_D 111 14.09.21 11:55 Сейчас в теме
(1)делать самописный отчет, который будет собирать данные за выбранный период и выводить А,В или С категория
Ну либо вообще делать Обработку, которая будет выполняться по регламенту и заполнять Новый регистр классификации партнеров каждое утро, это будет самый интересный вариант.
3. user1461477 14.09.21 13:18 Сейчас в теме
имхо, в типовых это регламент, нет?
Прикрепленные файлы:
4. yispepotri 14.09.21 13:31 Сейчас в теме
(3)вроде бы стоит выполнение каждый день, но данные как были за 20 год, так и остались, в истории выполнения также нет выполненных. Если провести вручную выполнить, те же за 20 только останутся, новые не появились, точно ли это задания связано с регистром?
5. user1461477 14.09.21 13:32 Сейчас в теме
(4) ну, если оно выполняется, значит надо смотреть кишки обработчика
6. yispepotri 14.09.21 13:34 Сейчас в теме
(5)само оно не выполнялось, выполнилось после ручного нажатия, но при этом ничего не изменилось
7. user1461477 14.09.21 13:38 Сейчас в теме
(6) перейдите в обработчик и поставьте там останов (убедившись, что останов на сервере ловится)
и трайсинг на здоровье
походу узнаете, что пишется, что не пишется
Прикрепленные файлы:
8. user1461477 14.09.21 13:40 Сейчас в теме
(не просто на сервере, а в фоновых)
Прикрепленные файлы:
9. yispepotri 14.09.21 15:22 Сейчас в теме
(8)получается в процедуру передается отрицательное значение КоличествоПериодовКлассификации, и условие где кол-во периодов равно больше нуля или нулю даже не может сработать. Как в таком случае возможно получить за текущий год?
Прикрепленные файлы:
10. user1461477 14.09.21 15:33 Сейчас в теме
в вашем распоряжении аж цельных две константы
11. yispepotri 14.09.21 15:51 Сейчас в теме
(10)а что они дадут, какое значение период и количество периодов нужно устанавливать, чтобы он брал текущей. Он все равно срабатывает и берет текущий год - 1 и получается период берется 2020 год, даже когда передана текущая дата
12. user1461477 14.09.21 15:55 Сейчас в теме
(11)
а что они дадут


есть два пути
1. поглядеть, что делает

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

	ОдинДень = 86400;
	Период = Новый СтандартныйПериод;
	Период.Вариант = ВариантСтандартногоПериода.ПроизвольныйПериод;

	Если Периодичность = ПредопределенноеЗначение("Перечисление.Периодичность.День") Тогда

		Период.ДатаНачала    = НачалоДня(БазоваяДата);
		Период.ДатаОкончания = КонецДня(БазоваяДата);

		Если КоличествоПериодов < 0 Тогда
			Период.ДатаОкончания = Период.ДатаНачала - 1;
			Период.ДатаНачала    = Период.ДатаНачала + ОдинДень * КоличествоПериодов;
		ИначеЕсли КоличествоПериодов > 0 Тогда
			Период.ДатаНачала    = Период.ДатаОкончания + 1;
			Период.ДатаОкончания = Период.ДатаОкончания + ОдинДень * КоличествоПериодов;
		КонецЕсли;

	ИначеЕсли Периодичность = ПредопределенноеЗначение("Перечисление.Периодичность.Неделя") Тогда

		Период.ДатаНачала    = НачалоНедели(БазоваяДата);
		Период.ДатаОкончания = КонецНедели(БазоваяДата);

		Если КоличествоПериодов < 0 Тогда
			Период.ДатаОкончания = Период.ДатаНачала - 1;
			Период.ДатаНачала    = Период.ДатаНачала + ОдинДень * 7 * КоличествоПериодов;
		ИначеЕсли КоличествоПериодов > 0 Тогда
			Период.ДатаНачала    = Период.ДатаОкончания + 1;
			Период.ДатаОкончания = Период.ДатаОкончания + ОдинДень * 7 * КоличествоПериодов;
		КонецЕсли;

	ИначеЕсли (Периодичность = ПредопределенноеЗначение("Перечисление.Периодичность.Декада")) Тогда

		ДеньМесяца = День(БазоваяДата);
		Если ДеньМесяца <= 10 Тогда
			НомерДекады = 1;
		ИначеЕсли ДеньМесяца <= 20 Тогда
			НомерДекады = 2;
		Иначе
			НомерДекады = 3;
		КонецЕсли;

		НомерДекады = НомерДекады + КоличествоПериодов;

		Если НомерДекады > 0 Тогда
			СмещениеМесяцев = Цел((НомерДекады-1)/3);
		Иначе
			СмещениеМесяцев = -1 - Цел((-НомерДекады)/3);
		КонецЕсли;

		НомерДекады = НомерДекады - 3*СмещениеМесяцев;
		СмещеннаяДата = ДобавитьМесяц(НачалоМесяца(БазоваяДата), СмещениеМесяцев) + (НомерДекады-1) * 10 * ОдинДень;
		ДеньМесяца = День(СмещеннаяДата);

		Если ДеньМесяца <= 10 Тогда
			Период.ДатаНачала    = НачалоМесяца(СмещеннаяДата);
			Период.ДатаОкончания = Период.ДатаНачала + ОдинДень * 9;
		ИначеЕсли ДеньМесяца <= 20 Тогда
			Период.ДатаНачала    = НачалоМесяца(СмещеннаяДата) + ОдинДень * 9;
			Период.ДатаОкончания = НачалоМесяца(СмещеннаяДата) + ОдинДень * 19;
		Иначе
			Период.ДатаНачала    = НачалоМесяца(СмещеннаяДата) + ОдинДень * 19;
			Период.ДатаОкончания = КонецМесяца(СмещеннаяДата);
		КонецЕсли;

	ИначеЕсли (Периодичность= ПредопределенноеЗначение("Перечисление.Периодичность.Месяц")) Тогда

		Период.ДатаНачала    = НачалоМесяца(БазоваяДата);
		Период.ДатаОкончания = КонецМесяца(БазоваяДата);

		Если КоличествоПериодов < 0 Тогда
			Период.ДатаОкончания = Период.ДатаНачала - 1;
			Период.ДатаНачала = ДобавитьМесяц(Период.ДатаНачала, КоличествоПериодов);
		ИначеЕсли КоличествоПериодов > 0 Тогда
			Период.ДатаНачала = Период.ДатаОкончания + 1;
			Период.ДатаОкончания = ДобавитьМесяц(Период.ДатаОкончания, КоличествоПериодов);
		КонецЕсли;

	ИначеЕсли (Периодичность = ПредопределенноеЗначение("Перечисление.Периодичность.Квартал")) Тогда

		Период.ДатаНачала    = НачалоКвартала(БазоваяДата);
		Период.ДатаОкончания = КонецКвартала(БазоваяДата);

		Если КоличествоПериодов < 0 Тогда
			Период.ДатаОкончания = Период.ДатаНачала - 1;
			Период.ДатаНачала    = ДобавитьМесяц(Период.ДатаНачала, 3*КоличествоПериодов);
		ИначеЕсли КоличествоПериодов > 0 Тогда
			Период.ДатаНачала    = Период.ДатаОкончания + 1;
			Период.ДатаОкончания = ДобавитьМесяц(Период.ДатаОкончания, 3*КоличествоПериодов);
		КонецЕсли;

	ИначеЕсли (Периодичность = ПредопределенноеЗначение("Перечисление.Периодичность.Полугодие")) Тогда

		Если Месяц(БазоваяДата) < 7 Тогда
			Период.ДатаНачала    = НачалоГода(БазоваяДата);
			Период.ДатаОкончания = КонецГода(ДобавитьМесяц(Период.ДатаНачала, - 6));
		Иначе
			Период.ДатаНачала    = ДобавитьМесяц(НачалоГода(БазоваяДата), 6);
			Период.ДатаОкончания = КонецГода(БазоваяДата);
		КонецЕсли;

		Если КоличествоПериодов < 0 Тогда
			Период.ДатаОкончания = Период.ДатаНачала - 1;
			Период.ДатаНачала    = ДобавитьМесяц(Период.ДатаНачала, 6*КоличествоПериодов);
		ИначеЕсли КоличествоПериодов > 0 Тогда
			Период.ДатаНачала    = Период.ДатаОкончания + 1;
			Период.ДатаОкончания = ДобавитьМесяц(Период.ДатаОкончания, 6*КоличествоПериодов);
		КонецЕсли;

	ИначеЕсли (Периодичность = ПредопределенноеЗначение("Перечисление.Периодичность.Год")) Тогда

		Период.ДатаНачала    = НачалоГода(БазоваяДата);
		Период.ДатаОкончания = КонецГода(БазоваяДата);

		Если КоличествоПериодов < 0 Тогда
			Период.ДатаОкончания = Период.ДатаНачала - 1;
			Период.ДатаНачала    = ДобавитьМесяц(Период.ДатаНачала, 12*КоличествоПериодов);
		ИначеЕсли КоличествоПериодов > 0 Тогда
			Период.ДатаНачала    = Период.ДатаОкончания + 1;
			Период.ДатаОкончания = ДобавитьМесяц(Период.ДатаОкончания, 12*КоличествоПериодов);
		КонецЕсли;

	КонецЕсли;

	Возврат Период;

КонецФункции
Показать


и 2. - поиграть константами

по трудозатратам примерно то же

но в первом варианте можно увидеть какую-нибудь кастомизацию
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Программист 1С
Москва
зарплата от 150 000 руб.
Полный день

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

Программист 1С: ЗУП
Чита
зарплата от 110 000 руб. до 150 000 руб.
Полный день

Разработчик 1C: ERP (Блоки: Снабжение, закупки, склад; Финансы и казначейство)
Чита
зарплата от 110 000 руб. до 150 000 руб.
Полный день

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