Каталог решений - Перенос остатков по дисконтным картам (картам лояльности) в УТ 11

Перенос остатков по дисконтным картам (картам лояльности) в УТ 11

Перенос остатков по дисконтным картам (картам лояльности) в УТ 11

В наличии

Как перенести данные о накоплениях по дисконтным картам из других программ в УТ 11.

Категория:

Описание

В данной статье хочу поделиться опытом переноса данных о накплениях по дисконтным картам из 1С 7.7 ТиС (Excel) в УТ 11.

Прежде всего, в 1С 7.7 ТиС нет стандартного функционала работы с накопительными картами, поэтому каждый дописывает конфигурацию как хочет. В итоге перенос данных проводился с помощью Excel, что делает данный метод более универсальным.

Столкнувшись с такой проблемой впервые, я полез в интернет в поисках ответа. Результат оказался не очень информативным:

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

Это можно сделать корректировкой регистров.

С уважением,
отдел тех. поддержки "1С"

1С:Предприятие 8.2 (8.2.17.153) "Управление торговлей ", редакция 11.0 (11.0.9.15)
Ситуация: был переход с «Управление Торговлей» редакция, 10.3 на «Управление Торговлей» редакция,11.0. Необходимо внести в «Управление Торговлей» редакция,11.0 накопленные суммы скидок по накопительным картам. Подскажите, как внести эти данные

Весь процесс можно разделить на несколько этапов:

  1. Создаение контрагентов (партнеров). На этом шаге я подробно останавливаться не буду т.к. контрагенты создаются либо при типовом переносе данных из одной базы в другую, либо универсальной обработкой. Важно, что у всех партнеров должна стоять галочка "Клиент", иначе не будет доступа к картам лояльности
  2. Создание карт лояльности. На данном шаге так же можно воспользоваться универсальной обработкой по загрузке данных в справочник
  3. Создание ключей аналитик. По номенклатуре создаем предварительно руками. По партнерам ключи создаются автоматически обработкой
  4. Создание и заполнение документа Корректировка регистров

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

&НаСервере
Процедура ВыполнитьЗагрузкуНаСервере()
	
	Док = Документы.КорректировкаРегистров.СоздатьДокумент();
	Док.Дата = ТекущаяДата();
	ДвиженияКорр = Док.Движения;
	
	СтрокаРег = док.ТаблицаРегистров.Добавить();
	СтрокаРег.Имя = Метаданные.РегистрыНакопления.ВыручкаИСебестоимостьПродаж.Имя;
	
	док.Записать();
	
	перемОрганизация = Справочники.Организации.НайтиПоНаименованию("Наше ИП");
	
	ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
	ТабДок = ОбработкаОбъект.ПолучитьМакет("Макет");
	Для текСтрока = 1 По ТабДок.ВысотаТаблицы Цикл
		текКлиент = ТабДок.Область(текСтрока,1).Текст;
		текСумма = ТабДок.Область(текСтрока,3).Текст;
		
		
		СтрокаЗапись = док.Движения.ВыручкаИСебестоимостьПродаж.Добавить();
		СтрокаЗапись.Период = Дата("2019", "01", "01");
		СтрокаЗапись.Активность = Истина;
		СтрокаЗапись.Регистратор = Док.Ссылка;
		СтрокаЗапись.АналитикаУчетаНоменклатуры = Справочники.КлючиАналитикиУчетаНоменклатуры.НайтиПоНаименованию("для регистра",Истина);
		
		//сначала поищем в регистре сведений
		Запрос = Новый Запрос;
		Запрос.Текст = 
			"ВЫБРАТЬ ПЕРВЫЕ 1
			|	АналитикаУчетаПоПартнерам.КлючАналитики КАК КлючАналитики
			|ИЗ
			|	РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам
			|ГДЕ
			|	АналитикаУчетаПоПартнерам.Партнер = &Партнер
			|	И АналитикаУчетаПоПартнерам.Организация = &Организация
			|	И АналитикаУчетаПоПартнерам.Контрагент = &Контрагент";
		
		Запрос.УстановитьПараметр("Контрагент", Справочники.Контрагенты.НайтиПоНаименованию(текКлиент));
		Запрос.УстановитьПараметр("Организация", Справочники.Организации.НайтиПоНаименованию("Наше ИП"));
		Запрос.УстановитьПараметр("Партнер", Справочники.Партнеры.НайтиПоНаименованию(текКлиент));
		
		РезультатЗапроса = Запрос.Выполнить();
		
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		
		перемНашли = Ложь;
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			перемКлюч = ВыборкаДетальныеЗаписи.КлючАналитики;
			перемНашли = Истина;
		КонецЦикла;

		Если перемНашли Тогда
			
		Иначе
			//надо поискать в справочнике ключей
			перемКлюч = Справочники.КлючиАналитикиУчетаПоПартнерам.НайтиПоНаименованию(текКлиент+"; "+перемОрганизация.Наименование+"; "+текКлиент);
			Если перемКлюч <> Справочники.КлючиАналитикиУчетаПоПартнерам.ПустаяСсылка() Тогда
				//у нас есть ключ в справочнике но нет в регистре
				//дальше нам надо эту запись закинуть и в регистр сведений
				НоваяЗапись = РегистрыСведений.АналитикаУчетаПоПартнерам.СоздатьМенеджерЗаписи();
				НоваяЗапись.Партнер = Справочники.Партнеры.НайтиПоНаименованию(текКлиент);
				НоваяЗапись.Организация = перемОрганизация;
				НоваяЗапись.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(текКлиент);
				НоваяЗапись.КлючАналитики = перемКлюч;
				НоваяЗапись.Записать(Истина);				
			Иначе
				//создаем ключ аналитики
				НовыйСпр = Справочники.КлючиАналитикиУчетаПоПартнерам.СоздатьЭлемент();
				НовыйСпр.Организация = Справочники.Организации.НайтиПоНаименованию("Наше ИП");
				НовыйСпр.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(текКлиент);
				НовыйСпр.Партнер = Справочники.Партнеры.НайтиПоНаименованию(текКлиент);
				НовыйСпр.Наименование = текКлиент+"; "+НовыйСпр.Организация.Наименование+"; "+текКлиент;
				НовыйСпр.Записать();
				перемКлюч = НовыйСпр.Ссылка;
				
				//дальше нам надо эту запись закинуть и в регистр сведений
				НоваяЗапись = РегистрыСведений.АналитикаУчетаПоПартнерам.СоздатьМенеджерЗаписи();
				НоваяЗапись.Партнер = Справочники.Партнеры.НайтиПоНаименованию(текКлиент);
				НоваяЗапись.Организация = перемОрганизация;
				НоваяЗапись.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(текКлиент);
				НоваяЗапись.КлючАналитики = перемКлюч;
				НоваяЗапись.Записать(Истина);
			КонецЕсли;
		КонецЕсли;
	
		СтрокаЗапись.АналитикаУчетаПоПартнерам = перемКлюч;
		СтрокаЗапись.ТипЗапасов = Перечисления.ТипыЗапасов.Товар;
		СтрокаЗапись.ВидЗапасов = Справочники.ВидыЗапасов.НайтиПоНаименованию("Собственный товар; Организация: Наше ИП");
		СтрокаЗапись.РазделУчета = Перечисления.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах;
		СтрокаЗапись.СуммаВыручки = текСумма;
		СтрокаЗапись.СуммаВыручкиБезНДС = текСумма;
		СтрокаЗапись.ВалютаВзаиморасчетов = Справочники.Валюты.НайтиПоНаименованию("RUB");
		СтрокаЗапись.ВалютаДокумента = Справочники.Валюты.НайтиПоНаименованию("RUB");
		СтрокаЗапись.СуммаВВалютеВзаиморасчетов = текСумма;
		СтрокаЗапись.СуммаВВалютеДокумента = текСумма;
		СтрокаЗапись.СуммаВыручкиРегл = текСумма;
		СтрокаЗапись.СуммаВыручкиСНДСРегл = текСумма;
		СтрокаЗапись.ВидДеятельностиНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС;
		СтрокаЗапись.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту;
		СтрокаЗапись.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС;
		
	КонецЦикла;

	док.Записать();
	
КонецПроцедуры

&НаКлиенте
Процедура ВыполнитьЗагрузку(Команда)
	ВыполнитьЗагрузкуНаСервере();
КонецПроцедуры

Ключ учета номенклатуры я предварительно создал в справочнике (Ключи аналитики учета номенклатуры)


Элементы в справочнике Ключи анатилики учета по партнерам и Регистре сведений Аналитика учета по партнерам у меня предварительно ищутся по скольку клиент уже работал в данной базе на момент загрузки данных.
Данные о накоплениях по картам лояльности скопированы в макет обработки

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

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

И не забудьте подставлять корректные суммы в ресурсы, если ваша тоговля проходит с НДС

Код обработки писал "на коленке", поэтому на оптимальность не претендую. Цель статьи заключается в том, что бы помочь систематизировать знания о работе карт лояльности в УТ и о процессе их загрузки через документ Корректировка регистров, и указать на некоторые подводные камни

has been added to your cart:
Оформление заказа