Загрузка данных из Algoritm-S в конфигурацию "Бухгалтерия предприятия 3.0 (3.0.79.21) "

04.08.20

Учетные задачи - Розничная торговля

В статье представлен шаблон обработки для загрузки некоторых данных из программы Algoritm-S в конфигурацию "Бухгалтерия предприятия 3.0 (3.0.79.21)

Доброго времени суток! Данная статья является шаблоном для разработки обработки - загрузки данных из программного продукта Algoritm-S, она призвана облегчить труды и сэкономить время, данный код можно использовать, как законченный продукт, а можно дорабатывать по своим требованиям и желаниям. Пример будет рассмотрен на конфигурации "Бухгалтерия предприятия 3.0 (3.0.79.21), возможно подойдет и для других с идентичными метаданными. 

Что имеем:

-файлы выгрузки из Algoritm-S в формате *.dbf;

-PROD.DBF - файл выгрузки номенклатуры;

-KONTR.DBF - файл выгрузки контрагентов;

-INC.DBF - файл выгрузки документов поступлений;

-ROUT.DBF - файл выгрузки документов продажи;

 

Создадим внешнюю обработку, разработаем самую простую форму с минимальными набором реквизитов:

Добавим команду загрузить и привяжем ее к процедуре загрузить()

Для элемента формы ДиалогВыбораФайла назначим обработчик для события НачалоВыбора

В модуле формы должна располагаться следующая процедура:

&НаКлиенте
Процедура ДиалогВыбораФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
	Диалог.Заголовок = "Выберите каталог";
	Диалог.МножественныйВыбор = Ложь; 
	
	Если Диалог.Выбрать() Тогда
		ПутьКФайлу = Диалог.ПолноеИмяФайла;
	КонецЕсли;	
	
КонецПроцедуры

Логика данного шаблона, в следующем, пользователь выбирает каталог, ищем в каталоге файлы с названиями выгрузок, обрабатываем загрузку.

 

По команде загрузить будем перебирать файлы в каталоге и искать необходимые:

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

&НаСервере
Процедура ЗагрузитьНаСервере()
	
    МассивНайденныхФайлов = НайтиФайлы(ПутьКФайлу,  "*.dbf", Ложь);
	
	ФайлНоменклатуры = Неопределено;
	ФайлКонтрагентов = Неопределено;
	ФайлПриходов = Неопределено;
	ФайлПродаж = Неопределено;
	
    Для Каждого Файл Из МассивНайденныхФайлов Цикл
		
		Если СтрНайти(Файл.ПолноеИмя, "PROD.DBF") Тогда 
			ФайлНоменклатуры = Файл.ПолноеИмя;
		КонецЕсли;
		
		Если СтрНайти(Файл.ПолноеИмя, "KONTR.DBF") Тогда 
			ФайлКонтрагентов = Файл.ПолноеИмя;
		КонецЕсли;
		
		Если СтрНайти(Файл.ПолноеИмя, "INC.DBF") Тогда 
			ФайлПриходов = Файл.ПолноеИмя;
		КонецЕсли;
		
		Если СтрНайти(Файл.ПолноеИмя, "ROUT.DBF") Тогда 
			ФайлПродаж = Файл.ПолноеИмя;
		КонецЕсли;
		
	КонецЦикла;
	
	Если ФайлНоменклатуры <> Неопределено Тогда
		Попытка
			ЗагрузитьНоменклатуру(ФайлНоменклатуры);
			Сообщить("Номенклатура успешно загружена");
		Исключение
			Сообщить(ОписаниеОшибки());
		КонецПопытки;
	КонецЕсли;
	
	Если ФайлКонтрагентов <> Неопределено Тогда
		Попытка
			ЗагрузитьКонтрагентов(ФайлКонтрагентов);
			Сообщить("Контрагенты успешно загружены");
		Исключение
			Сообщить(ОписаниеОшибки());
		КонецПопытки;
	КонецЕсли;

	Если ФайлПриходов <> Неопределено Тогда
		Попытка
			ЗагрузитьПоступления(ФайлПриходов);
			Сообщить("Поступления успешно загружены");
		Исключение
			Сообщить(ОписаниеОшибки());
		КонецПопытки;
	КонецЕсли;	
	
	Если ФайлПродаж <> Неопределено Тогда
		Попытка
			ЗагрузитьПродажи(ФайлПродаж);
			Сообщить("Продажи успешно загружены");
		Исключение
			Сообщить(ОписаниеОшибки());
		КонецПопытки;
	КонецЕсли;	
	
		
КонецПроцедуры

Сама функция по загрузке DBF-файла так же взята из шаблона (Публикация № 103060, спасибо автору) и немного доработана под нужды:

&НаСервере
Функция ЗаполнитьТЗизDBF(ИмяФайла, Кодировка, СписокКолонок)
	
	ФайлДанных = Новый XBase();
	ФайлДанных.ОткрытьФайл(ИмяФайла,,Истина);
	ФайлДанных.Кодировка = Кодировка;
	Если Не ФайлДанных.Открыта() Тогда
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Произошла ошибка при открытии файла " + ИмяФайла;
		Сообщение.Сообщить();
		Возврат Неопределено;
	КонецЕсли;
	
	ОписаниеБулево = Новый ОписаниеТипов("Булево");
	ОписаниеДаты = Новый ОписаниеТипов("Дата",,, Новый КвалификаторыДаты(ЧастиДаты.Дата));
	
	ТабЗнач = Новый ТаблицаЗначений;
	Для Каждого Поле из ФайлДанных.Поля Цикл
		Колонка = СписокКолонок.НайтиПоЗначению(Поле.Имя);
		Если Колонка <> Неопределено Тогда
			Если Поле.Тип = "L" Тогда
				Тип = ОписаниеБулево;
			ИначеЕсли Поле.Тип = "D" Тогда
				Тип = ОписаниеДаты;
			ИначеЕсли (Поле.Тип = "N") ИЛИ (Поле.Тип = "F") ИЛИ (Поле.Тип = "S") Тогда
				Тип = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(Поле.Длина));
			Иначе
				Тип = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(Поле.Длина));
			КонецЕсли;
			
			Если СтрНайти(Колонка.Представление,"Цена") > 0 ИЛИ СтрНайти(Колонка.Представление,"Сумма") > 0 ИЛИ СтрНайти(Колонка.Представление,"Количество") > 0 Тогда
				ТабЗнач.Колонки.Добавить(Колонка.Представление, Новый ОписаниеТипов("Число"));
			Иначе
				ТабЗнач.Колонки.Добавить(Колонка.Представление, Тип);
			КонецЕсли;
		
		КонецЕсли;
	КонецЦикла;
	
	Если (ТабЗнач.Колонки.Количество() <> 0) И (ФайлДанных.Первая()) Тогда
		Пока Истина Цикл
			СтрокаТаб = ТабЗнач.Добавить();
			Для Каждого Поле из ФайлДанных.Поля Цикл
				Колонка = СписокКолонок.НайтиПоЗначению(Поле.Имя);
				Если (Колонка <> Неопределено) И Колонка.Пометка Тогда
					СтрокаТаб[Колонка.Представление] = ФайлДанных[Поле.Имя];
				КонецЕсли;
			КонецЦикла;
			Если Не ФайлДанных.Следующая() Тогда Прервать; КонецЕсли;
		КонецЦикла;
	КонецЕсли;
	
	ФайлДанных.ЗакрытьФайл();
	Возврат ТабЗнач;
	
КонецФункции

Далее идут процедуры загрузки, а загружаются:

-справочник номенклатура;

-справочник контрагенты;

-документ поступление товар и услуг;

-документ отчет о розничных продажах;

 

В процедурах в списке колонок определяем структуру нашего DBF-файла выгрузки, остальное думаю понятно

Процедура ЗагрузитьПродажи(ФайлПродаж)
	
	Кодировка = КодировкаXBase.OEM ;
	
	СписокКолонок = Новый СписокЗначений;
	СписокКолонок.Добавить("PROD_ID", "КодТовара", Истина);
	СписокКолонок.Добавить("OUT_H_ID", "КодДокумента", Истина);
	СписокКолонок.Добавить("DATE_SALE", "ДатаПродажи", Истина);
	СписокКолонок.Добавить("OPER_ID", "ИДОперации", Истина);
	СписокКолонок.Добавить("OUT_CNT", "Количество", Истина);
	СписокКолонок.Добавить("NDS_SIZE", "СтавкаНДС", Истина);
	СписокКолонок.Добавить("INC_NDS", "СуммаНДС", Истина);
	СписокКолонок.Добавить("INC_W", "Цена", Истина);
	СписокКолонок.Добавить("SUM_NO_SK", "Сумма", Истина);	
	
	ТЗ = ЗаполнитьТЗизDBF(ФайлПродаж, Кодировка, СписокКолонок);	
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ТЗ.КодТовара КАК КодТовара,
	|	ТЗ.КодДокумента КАК КодДокумента,
	|	ТЗ.ДатаПродажи КАК ДатаПродажи,
	|	ТЗ.ИДОперации КАК ИДОперации,
	|	ТЗ.Количество КАК Количество,
	|	ТЗ.СтавкаНДС КАК СтавкаНДС,
	|	ТЗ.СуммаНДС КАК СуммаНДС,
	|	ТЗ.Цена КАК Цена,
	|	ТЗ.Сумма КАК Сумма
	|ПОМЕСТИТЬ ВТ
	|ИЗ
	|	&ТЗ КАК ТЗ
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ВТ.КодТовара КАК КодТовара,
	|	ВТ.КодДокумента КАК КодДокумента,
	|	ВТ.ДатаПродажи КАК ДатаПродажи,
	|	ВТ.ИДОперации КАК ИДОперации,
	|	СУММА(ВТ.Количество) КАК Количество,
	|	ВТ.СтавкаНДС КАК СтавкаНДС,
	|	СУММА(ВТ.СуммаНДС) КАК СуммаНДС,
	|	СРЕДНЕЕ(ВТ.Цена) КАК Цена,
	|	СУММА(ВТ.Сумма) КАК Сумма
	|ИЗ
	|	ВТ КАК ВТ
	|
	|СГРУППИРОВАТЬ ПО
	|	ВТ.КодТовара,
	|	ВТ.КодДокумента,
	|	ВТ.ДатаПродажи,
	|	ВТ.ИДОперации,
	|	ВТ.СтавкаНДС
	|ИТОГИ ПО
	|	ДатаПродажи";
	
	Запрос.УстановитьПараметр("ТЗ", ТЗ);
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаКодДокумента = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	
	ДатаНакладной = "20001010";
	
	Пока ВыборкаКодДокумента.Следующий() Цикл
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ ПЕРВЫЕ 1
		|	ОтчетОРозничныхПродажах.Ссылка КАК Ссылка
		|ИЗ
		|	Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах
		|ГДЕ
		|	ОтчетОРозничныхПродажах.Дата = &Дата";
		
		Запрос.УстановитьПараметр("Дата", ВыборкаКодДокумента.ДатаПродажи);
		
		РезультатЗапроса = Запрос.Выполнить();
		
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		
		Если ВыборкаДетальныеЗаписи.Следующий() Тогда
			Документ = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
		Иначе
			Документ = Документы.ОтчетОРозничныхПродажах.СоздатьДокумент();
		КонецЕсли;	
		
		Документ.ВидОперации = Перечисления.ВидыОперацийОтчетОРозничныхПродажах.ОтчетККМОПродажах;
		Документ.ВалютаДокумента = Справочники.Валюты.НайтиПоНаименованию("руб");
		Документ.Организация = Объект.Организация;
		Документ.Склад = Объект.Склад;
		Документ.СчетКасса = ПланыСчетов.Хозрасчетный.Касса;
		Документ.ДокументБезНДС = Ложь;
		Документ.СуммаВключаетНДС = Истина;
		
		ВыборкаДетальныеЗаписи = ВыборкаКодДокумента.Выбрать();
		
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			
			Документ.Дата = ВыборкаДетальныеЗаписи.ДатаПродажи;
			
			СтрТЧ = Документ.Товары.Добавить();
			СтрТЧ.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(Лев(ВыборкаДетальныеЗаписи.КодТовара,11));
			СтрТЧ.Количество = ВыборкаДетальныеЗаписи.Количество;
			СтрТЧ.Цена = ВыборкаДетальныеЗаписи.Цена;
			СтрТЧ.Сумма = ВыборкаДетальныеЗаписи.Сумма + ВыборкаДетальныеЗаписи.СуммаНДС;
			СтрТЧ.СуммаНДС = ВыборкаДетальныеЗаписи.СуммаНДС;
			
			Если ВыборкаДетальныеЗаписи.СтавкаНДС = "10" Тогда
				СтавкаНДС = Перечисления.СтавкиНДС.НДС10;
			ИначеЕсли ВыборкаДетальныеЗаписи.СтавкаНДС = "20" Тогда
				СтавкаНДС = Перечисления.СтавкиНДС.НДС20;
			Иначе СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
			КонецЕсли;
			
			СтрТЧ.СтавкаНДС = СтавкаНДС;
			ДатаНакладной = ВыборкаКодДокумента.ДатаПродажи;
			
			Если ВыборкаДетальныеЗаписи.ИДОперации = "545" Тогда
				СтрОплаты = Документ.Оплата.Добавить();
				СтрОплаты.ВидОплаты = Справочники.ВидыОплатОрганизаций.НайтиПоНаименованию("Эквайринг");
				СтрОплаты.СуммаОплаты  = ВыборкаДетальныеЗаписи.Сумма + ВыборкаДетальныеЗаписи.СуммаНДС;
			КонецЕсли;
			
		КонецЦикла;
		
		СчетаУчетаВДокументах.ЗаполнитьСчетаУчетаРасчетов(Документ);
		СчетаУчетаВДокументах.ЗаполнитьСчетаУчетаВТабличнойЧасти(Документ, "Товары");
		
		Попытка 
			Документ.Записать(РежимЗаписиДокумента.Проведение);
		Исключение
			Документ.Записать(РежимЗаписиДокумента.Запись);
		КонецПопытки;
		
	КонецЦикла;
	
КонецПроцедуры

Процедура ЗагрузитьНоменклатуру(ФайлНоменклатуры)
	
	Кодировка = КодировкаXBase.OEM ;
	
	СписокКолонок = Новый СписокЗначений;
	СписокКолонок.Добавить("PR_ID", "Код", Истина);
	СписокКолонок.Добавить("PROD_N", "Наименование", Истина);
	СписокКолонок.Добавить("MEAS_N", "ЕдиницаИзмерения", Истина);
	
	ТЗ = ЗаполнитьТЗизDBF(ФайлНоменклатуры, Кодировка, СписокКолонок);
	
	Для Каждого Стр из ТЗ Цикл
		
		Об = Справочники.Номенклатура.СоздатьЭлемент();
		Об.Код = Лев(Стр.Код,11);
		Об.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товар");
		Об.Наименование = СокрЛП(Стр.Наименование);
		Об.ЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("Шт");
		Об.ОбменДанными.Загрузка = Истина;
		
		Если Справочники.Номенклатура.НайтиПоКоду(Лев(Стр.Код,11)) = Справочники.Номенклатура.ПустаяСсылка() Тогда
			Об.Записать();
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры

Процедура ЗагрузитьКонтрагентов(ФайлКонтрагентов)
	
	Кодировка = КодировкаXBase.OEM ;
	
	СписокКолонок = Новый СписокЗначений;
	СписокКолонок.Добавить("INN", "ИНН", Истина);
	СписокКолонок.Добавить("PART_N", "Наименование", Истина);
	СписокКолонок.Добавить("PART_ID", "Код", Истина);
	
	
	ТЗ = ЗаполнитьТЗизDBF(ФайлКонтрагентов, Кодировка, СписокКолонок);
	
	Для Каждого Стр из ТЗ Цикл
		
		Об = Справочники.Контрагенты.СоздатьЭлемент();
		Об.Код = Лев(Стр.Код,9);
		Об.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо;
		Об.СтранаРегистрации = Справочники.СтраныМира.Россия;
		Об.Наименование = СокрЛП(Стр.Наименование);
		Об.ИНН = СокрЛП(Стр.ИНН);
		Об.ОбменДанными.Загрузка = Истина;
		Если Справочники.Контрагенты.НайтиПоКоду(Лев(Стр.Код,9)) = Справочники.Контрагенты.ПустаяСсылка() Тогда
			Об.Записать();
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры

Процедура ЗагрузитьПоступления(ФайлПриходов)
	
	Кодировка = КодировкаXBase.OEM ;
	
	СписокКолонок = Новый СписокЗначений;
	СписокКолонок.Добавить("PART_ID", "КодКонтрагента", Истина);
	СписокКолонок.Добавить("H_NUM", "КодДокумента", Истина);
	СписокКолонок.Добавить("PROD_ID", "КодТовара", Истина);
	СписокКолонок.Добавить("H_DATE", "ДатаДокумента", Истина);
	СписокКолонок.Добавить("INC_CNT", "Количество", Истина);
	СписокКолонок.Добавить("NDS_SIZE", "СтавкаНДС", Истина);
	СписокКолонок.Добавить("INC_NO", "ЦенаСНДС", Истина);
	СписокКолонок.Добавить("INC_NDS", "СуммаНДС", Истина);
	СписокКолонок.Добавить("INC_SUM_W", "СуммаСНДС", Истина);
	
	ТЗ = ЗаполнитьТЗизDBF(ФайлПриходов, Кодировка, СписокКолонок);
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ТЗ.КодКонтрагента КАК КодКонтрагента,
	|	ТЗ.КодДокумента КАК КодДокумента,
	|	ТЗ.ДатаДокумента КАК ДатаДокумента,
	|	ТЗ.Количество КАК Количество,
	|	ТЗ.СтавкаНДС КАК СтавкаНДС,
	|	ТЗ.СуммаНДС КАК СуммаНДС,
	|	ТЗ.ЦенаСНДС КАК ЦенаСНДС,
	|	ТЗ.СуммаСНДС КАК СуммаСНДС,
	|	ТЗ.КодТовара КАК КодТовара
	|ПОМЕСТИТЬ ВТ
	|ИЗ
	|	&ТЗ КАК ТЗ
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ВТ.КодКонтрагента КАК КодКонтрагента,
	|	ВТ.КодДокумента КАК КодДокумента,
	|	ВТ.ДатаДокумента КАК ДатаДокумента,
	|	СУММА(ВТ.Количество) КАК Количество,
	|	ВТ.СтавкаНДС КАК СтавкаНДС,
	|	СУММА(ВТ.СуммаНДС) КАК СуммаНДС,
	|	СРЕДНЕЕ(ВТ.ЦенаСНДС) КАК ЦенаСНДС,
	|	СУММА(ВТ.СуммаСНДС) КАК СуммаСНДС,
	|	ВТ.КодТовара КАК КодТовара
	|ИЗ
	|	ВТ КАК ВТ
	|
	|СГРУППИРОВАТЬ ПО
	|	ВТ.КодКонтрагента,
	|	ВТ.КодДокумента,
	|	ВТ.ДатаДокумента,
	|	ВТ.СтавкаНДС,
	|	ВТ.КодТовара
	|ИТОГИ ПО
	|	КодДокумента";
	
	Запрос.УстановитьПараметр("ТЗ", ТЗ);
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаКодДокумента = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	
	НомерНакладной = "";
	
	Пока ВыборкаКодДокумента.Следующий() Цикл
		
		Если НомерНакладной <> ВыборкаКодДокумента.КодДокумента Тогда
			НайденныйДокумент = Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру(Лев(ВыборкаКодДокумента.КодДокумента,11));
			Если НайденныйДокумент = Документы.ПоступлениеТоваровУслуг.ПустаяСсылка() Тогда
				Документ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
			Иначе
				Документ = НайденныйДокумент.ПолучитьОбъект();
			КонецЕсли;
		Иначе
			Документ = Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру(НомерНакладной).ПолучитьОбъект();
		КонецЕсли;
		
		Документ.Номер = Лев(ВыборкаКодДокумента.КодДокумента, 11);
		Документ.НомерВходящегоДокумента = Лев(ВыборкаКодДокумента.КодДокумента, 11);
		Документ.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.Товары;
		Документ.Организация = Объект.Организация;
		Документ.Склад = Объект.Склад;
		
		ВыборкаДетальныеЗаписи = ВыборкаКодДокумента.Выбрать();
		
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			
			Документ.Контрагент = Справочники.Контрагенты.НайтиПоКоду(Лев(ВыборкаДетальныеЗаписи.КодКонтрагента,9));
			Документ.Дата = ВыборкаДетальныеЗаписи.ДатаДокумента;
			Документ.ДатаВходящегоДокумента = ВыборкаДетальныеЗаписи.ДатаДокумента;
			
			СтрТЧ = Документ.Товары.Добавить();
			СтрТЧ.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(Лев(ВыборкаДетальныеЗаписи.КодТовара,11));
			СтрТЧ.Количество = ВыборкаДетальныеЗаписи.Количество;
			СтрТЧ.Цена = ВыборкаДетальныеЗаписи.ЦенаСНДС;
			СтрТЧ.Сумма = ВыборкаДетальныеЗаписи.СуммаСНДС;
			СтрТЧ.СуммаНДС = ВыборкаДетальныеЗаписи.СуммаНДС;
			
			Если ВыборкаДетальныеЗаписи.СтавкаНДС = "10" Тогда
				СтавкаНДС = Перечисления.СтавкиНДС.НДС10;
			ИначеЕсли ВыборкаДетальныеЗаписи.СтавкаНДС = "20" Тогда
				СтавкаНДС = Перечисления.СтавкиНДС.НДС20;
			Иначе СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
			КонецЕсли;
			
			СтрТЧ.СтавкаНДС = СтавкаНДС;
			НомерНакладной = Лев(ВыборкаКодДокумента.КодДокумента,11);
			
		КонецЦикла;
		
		СчетаУчетаВДокументах.ЗаполнитьСчетаУчетаРасчетов(Документ);
		СчетаУчетаВДокументах.ЗаполнитьСчетаУчетаВТабличнойЧасти(Документ, "Товары");
		
		Попытка 
			Документ.Записать(РежимЗаписиДокумента.Проведение);
		Исключение
			Документ.Записать(РежимЗаписиДокумента.Запись);
		КонецПопытки;
		
	КонецЦикла;
	
КонецПроцедуры

 

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

Algoritm-S DBF

См. также

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1, ФФД 1.2). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Поддерживает разрешительный режим и маркировку. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows

6000 руб.

27.02.2017    808980    5130    9736    

2924

Оптовая торговля Розничная торговля Обмен с ГосИС Бухгалтер Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Автоматизация учета ЕГАИС в 1С для оптовой торговли, производства и импорта. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

828 руб.

15.12.2015    172128    858    369    

404

Внешние источники данных Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    22315    23    49    

39

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих, Вики Принт и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки и разрешительного режима. Поддержка пробития чеков с новыми ставками НДС 5% и НДС 7%.

5880 руб.

25.05.2015    340281    2040    3112    

1058

Оптовая торговля Розничная торговля Пользователь Платформа 1С v8.3 Оперативный учет Управляемые формы 1С:Управление торговлей 10 1С:Розница 2 Россия Управленческий учет Платные (руб)

Подсистема призвана упростить и автоматизировать процесс расчета и начисления бонусов покупателей. Бонусная система работает с конфигурациями 1С:УТ 10.3, 1С:Розница. Механизм реализован в начале 2013г. и работает до сих пор с постоянными совершенствованиями.

30000 руб.

02.11.2015    113358    102    88    

186

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

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

120000 руб.

19.08.2020    26133    25    1    

28