Импорт из Далиона в 1С:Бухгалтерию

Самое начало

Должно быть соответствие версий Далиона, бухии, применяемых правил обмена. Правила обмена в Далионе могут быть для БухияКОРП. И в любом случае встроенные в конфу правила обмена в Далионе скорее всего глючные и требуют доработки.

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

 

Чтобы ОКС проводились при загрузке, необходимо в бухии настроить оплату банк картами, настроить бух счета для "видов оплаты картами"

- Включить функциональность "оплата банк картами клиентов";

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

Расчеты по экварингу учитываются по счету 57.03.

 

Чтобы платежи по экварингу (поступление денег) нормально импортировалось в бухию

В далионе поступление денег по экварингу документом "выписка банка входящая" должно быть с типом "поступление по платежным картам".

Иначе в бухгалтерию начисление и оплата экваринга попадает на разные бух.счета, счет 57 не закрывается.

Поступление в бухгалтерии учитывается проводкой Д. 51 К.57.03

В бухии учет по статьям ДДС (движения денежных средств) отключен, так что настройки импорта статей ДДС не проверял.

 

Изменил правила выгрузки платежных поручений

Выписки банка входящие по банковским комиссиям стандартными правилами в конфигурации Далион (2.0.23.1) выгружались глючно:

- был код операции "прочее списание" вместо "комиссия банка";

- не указывался счет дебета и статья затрат;

- не ставился признак: Расходы принимаемые для УСН = ДА.

 

Вот картинка как было:

рис

 

 

 

Исправление 1 - изменились "правила конвертации объектов", обработчик "после загрузки".

Правило "после загрузки"

 СчетаУчетаВДокументах.ЗаполнитьПередОтображениемПользователю(Объект);

Если Объект.ВидОперации = Перечисления.ВидыОперацийСписаниеДенежныхСредств.КомиссияБанка Тогда
     Объект.ОтражениеВУСН=Перечисления.ОтражениеВУСН.Принимаются;
КонецЕсли;

 

Исправление 2 - изменил правило конвертации свойства "вид операции"

Имя обработчика: ПКС_ПлатежноеПоручениеИсходящее_Списание_ВидОперации_ПередВыгрузкойСвойства_9_36

Код:

Если Источник.ВидОперации = Перечисления.ВидыОперацийПлатежноеПоручение.ПеречислениеНалога Тогда

Значение = "ПеречислениеНалога";
ИначеЕсли Источник.ВидОперации = Перечисления.ВидыОперацийПлатежноеПоручение.ПрочийРасход Тогда

Значение = "КомиссияБанка";
Иначе
Если Источник.ВзаиморасчетыПодробно.Количество() > 0 И
Источник.ВзаиморасчетыПодробно[0].ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем Тогда
Значение = "ВозвратПокупателю";
Иначе
Значение = "ОплатаПоставщику";
КонецЕсли;
КонецЕсли;  

 

Изменил правила выгрузки инвентаризации

Выгрузка  инвентаризации. Добавил условие выгрузки строк, что учетное или фактическое количество больше нуля

  ТекстЗапросаПоТоварам =
    "ВЫБРАТЬ
    |    Товары.Номенклатура КАК Номенклатура,
    |    Товары.Цена КАК Цена,
    |    ВЫРАЗИТЬ(Товары.Количество * Товары.Коэффициент КАК ЧИСЛО(15,3)) КАК Количество,
    |    ВЫРАЗИТЬ(Товары.КоличествоУчет * Товары.Коэффициент КАК ЧИСЛО(15,3)) КАК КоличествоУчет,
    |    ВЫРАЗИТЬ(Товары.Цена * Товары.Количество * Товары.Коэффициент КАК ЧИСЛО(15,2)) КАК Сумма
    |ИЗ
    |    Документ.ИнвентаризацияТовара.Товары КАК Товары
    |ГДЕ
    |    Товары.Ссылка = &Ссылка И ((Товары.Количество>0) ИЛИ (Товары.КоличествоУчет>0))"; // РСА
    //     |    Товары.Ссылка = &Ссылка";    
КонецЕсли;

Это сделано для запроса, который выполняется в случае, если свертка по НДС=нет.

 

Вот были смешные неудачные попытки:

1. Не переставил кавычки. Забыл, что текст запроса - это ТЕКСТ.

|ГДЕ
| Товары.Ссылка = &Ссылка" И (Количество>0 ИЛИ КоличествоУчет>0);
 

Результат — ошибка уже при выгрузке!

ПКО = ИнвентаризацияТоваровНаСкладе (Документ: Инвентаризация товара)
ПКГС = 6 (Товары --> Товары)
Объект = Инвентаризация товара О0000000001 от 08.01.2021 9:40:00 (Инвентаризация товара)
Обработчик = ПередОбработкойВыгрузкиГруппыСвойств
ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(72,32)}: Переменная не определена (Количество)
ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(7864)
КодСообщения = 48 

 

Вот то ли ошибка, то ли все верно.

Было так:

| Товары.Ссылка = &Ссылка И (Количество>0 ИЛИ КоличествоУчет>0)"; // РСА

Сделал так:

| Товары.Ссылка = &Ссылка И (Товары.Количество>0 ИЛИ Товары.КоличествоУчет>0)"; // РСА

??? В условиях запроса можно ли указывать псевдонимы полей, которые являются результатом выполнения запроса?

Или можно указывать только имена исходных полей или псевдонимы исходных полей?

Загрузка поступлений по экварингу - старые заметки 15.04.23

Старые заметки

ОСТАЕТСЯ СДЕЛАТЬ - Настроить выгрузку в бухию поступлений банковских комиссий по экварингу - чтобы формировалась проводка учета поступления оплаты по экварингу на сумму банковской комиссии.

Пока обмен с бухгалтерией не настроен, проводка Д 91 К 57 на суммы комиссии по экварингу вводится в 1С:бухгалтерию вручную.

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

 

Из конфигурации "Далион" документ инвентаризация выгружается в бухгалтерию (бухию) тремя документами:

инвентаризация - в бухии не вызывает никаких проводок;

списание недостач;

оприходование излишков.

 

Эти операции нужно посмотреть, чтобы по аналогии сделать другой обмен.

В Далионе документ ОКС учитывает оплату экварингом, причем по дебету расчетов с покупателем отражается сумма оплаты по экварингу за вычетом комиссии, а банковская комиссия, учитывается как затраты. Указанная операция "затрат" в бухию не выгружается. Надо настроить выгрузку этой операции.

Расчет суммы банковской комиссии средствами Далион может быть некорректный. Зависит от настроек комиссий в Далионе для вида оплат. Зависит от настроек видов оплат во фронтоле. Желательно в Далионе и фронтоле настроить все правильно, чтобы были возможны расхождения только в пределах копеек.

Если у банка "динамический процент", то настройки процента комиссии в учетных программах теряют смысл!

В Далионе в доке "ОКС" в случае некорректных настроек расчета комиссии банка имеется возможность вручную исправить суммы комиссии.

Эта вся схема в Далионе какая-то негодная. Смотри принцип осмотрительности в бухучете https://www.klerk.ru/buh/articles/501482/

Негодность, что на сумму комиссии уже учтена банк выручка?

 

----

Из Далиона в бухию выгружаются выписки банка на поступившие по экварингу деньги. В выписке банка в комментарии указывается банковская комиссия (с точностью до копеек. Необходимо эти данные обрабатывать и загружать в бухию операцию с проводкой "дебет 91  кредит 57" (это в 2023 так и работает после доп настроек).

 

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

 

 

 

Правила загрузки из далион-УМ в 1С:бух для входящих платежек по банк картам, чтобы суммы комиссии брались из назначения платежных поручений! 15.04.23

В бухию поступление денег по экварингу из Далиона загружалось по факту.

Затем, когда в 1С:Бух были введены проценты по экварингу для каждого вида (типа) банк оплаты, при загрузке поступлений по экварингу стала считаться комиссия и учитываться проводкой 51/57, 91/57 или аналогичной.

Код подсчета суммы комиссий был в обработчике "ПослеЗагрузки".

Это все негодно, т.к.:

- если даже правильно ввести процент, из-за округлений суммы будут расходится с банком на копейки.

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

15.04.23

 

Изменил правила обмена. Для дока ПлатежноеПоручениеВходящее

обработчик после загрузки

ПКО_ПлатежноеПоручениеВходящее_ПослеЗагрузкиОбъекта был таким

 

  <ПослеЗагрузки>Если Объект.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ПоступленияОтПродажПоПлатежнымКартамИБанковскимКредитам Тогда 
СтрокаРасшифровки = Объект.РасшифровкаПлатежа[0]; 
СтрокаРасшифровки.СуммаВзаиморасчетов = СтрокаРасшифровки.СуммаПлатежа;
СтрокаРасшифровки.СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.Автоматически; 
Попытка 
ВидОплаты = Справочники.ВидыОплатОрганизаций.ВидОплатыПоДоговору(Объект.Организация, Объект.Контрагент, Объект.ДоговорКонтрагента); 
Если ЗначениеЗаполнено(ВидОплаты) Тогда 
Процент = Документы.ПоступлениеНаРасчетныйСчет.ЭквайрингПроцентУслугБанкаПоВидуОплаты(ВидОплаты, Объект.СуммаДокумента); 

Если Процент > 0 Тогда 
Объект.СуммаУслуг = Документы.ПоступлениеНаРасчетныйСчет.ЭквайрингСуммаУслугБанка(Процент, СтрокаРасшифровки.СуммаПлатежа); 
СтрокаРасшифровки.СуммаУслуг = Объект.СуммаУслуг; 
КонецЕсли; 
КонецЕсли; 

Исключение 
Объект.СуммаУслуг = 0; 
КонецПопытки; 

Иначе Для Каждого СтрокаПлатеж Из Объект.РасшифровкаПлатежа Цикл Если (Объект.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ОплатаПокупателя) ИЛИ (Объект.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ВозвратОтПоставщика) Тогда СтрокаПлатеж.СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.Автоматически; КонецЕсли; КонецЦикла; КонецЕсли; // ПСН Выполнить(Алгоритмы.ЗаполнитьПорядокОтраженияАвансаПатент); СчетаУчетаВДокументах.ЗаполнитьПередОтображениемПользователю(Объект);</ПослеЗагрузки> 
  <СинхронизироватьПоИдентификатору>true</СинхронизироватьПоИдентификатору> 

 

В модуле 1С-бухии есть код

Функция ЭквайрингСуммаУслугБанка(ПроцентБанковскойКомиссии, СуммаДокумента) Экспорт
	
	Возврат Окр(ПроцентБанковскойКомиссии * СуммаДокумента / (100 - ПроцентБанковскойКомиссии), 2);
	
КонецФункции

 

РСА Изменил код обработчика ПКО_ПлатежноеПоручениеВходящее_ПослеЗагрузкиОбъекта  на такой:

Если Объект.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ПоступленияОтПродажПоПлатежнымКартамИБанковскимКредитам Тогда
    //Сообщить("Загружаем платежку экваринга");
	СтрокаРасшифровки = Объект.РасшифровкаПлатежа[0];
	СтрокаРасшифровки.СуммаВзаиморасчетов = СтрокаРасшифровки.СуммаПлатежа;
	СтрокаРасшифровки.СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.Автоматически;
	  
	Попытка 
		
	// Сюда вставляю код, чтобы получить комиссию из платежки
	
	
 // ПлатПоручениеСсылка // Ссылка на проверяемый документ
// Назначение  // Объявление переменной или ссылка на текст назначения
// СуммаКомиссии   // Вычисленная сумма комиссии
// СтрокаКомиссии // Выделенная из назначения строка комисси (тип "Строка")

//Если ЗначениеЗаполнено(ПлатПоручениеСсылка) Тогда
	// Сообщить("ДокВыбран "+ПлатПоручениеСсылка);
	// Сообщить(ПлатПоручениеСсылка.НазначениеПлатежа);
	Назначение=Объект.НазначениеПлатежа; // Присваиваем текст назначения внутренней переменной формы
// КонецЕсли;


// Проверяю, что текст назначения есть
Если НЕ ПустаяСтрока(Назначение) Тогда  // Попытка выделить комиссию

	//СуммаКомиссии=0;  // Присваем 0, чтобы не было пустого значения. Не надо!
	СтрокаКомиссии=""; // Строковая переменная для комиссии, инициализация

	// Выделяем комиссию

	НачалоКомиссии=0;  // Надо объявить. Если значения будут не найдены, тогда значения для сравнения не будут пустыми
	КонецКомиссии=0;
	
	Если Найти(Назначение, "Комиссия ") >0 Тогда
		НачалоКомиссии=Найти(Назначение, "Комиссия ")+9;
	КонецЕсли;

	Если Найти(Назначение, ". Возврат ") >0 Тогда
		КонецКомиссии=Найти(Назначение, ". Возврат ");  // Нельзя минусовать 1 позицию, обрезает копейки.
	КонецЕсли;

	// Если есть начало и конец комиссии, достаем строку и делаем попытку преобразовать ее в число
	Если НачалоКомиссии>0 И КонецКомиссии>0 Тогда
		// достаем сумму комиссии из назначения
		СтрокаКомиссии=Сред(Назначение,НачалоКомиссии,КонецКомиссии-НачалоКомиссии); // Строка, Начало, Длина выделяемой подстроки
		СтрокаКомиссии=СтрЗаменить(СтрокаКомиссии,",","");
		// Сообщить("Строка комиссии:"+СтрокаКомиссии + " в доке "+ Объект.Дата + "; сумма дока ;"+Объект.СуммаДокумента);  //  Объект.Ссылка при первой загрузке в этот момент еще не записан, ссылки не существует
		
		// Пытаемся преобразовать строку комиссии в число
	
 		// Сообщить("Строка комиссии до преобраз в число " +СтрокаКомиссии);
 		Попытка
			СуммаКомиссии=Число(СтрокаКомиссии);
	 	Исключение
			Сообщить("Не получается преобразовать выделен комиссию в число " + Объект.Дата + "; сумма дока ;"+Объект.СуммаДокумента); // И ссылку на платежку дать умно
			СуммаКомиссии=0;
 		КонецПопытки;
	
	Иначе      // Нет комиссии в назначении платежа
	
		СуммаКомиссии=0;
	    Сообщить("Не найдены ключевые слова; нельзя достать комиссию из назначения платежа в доке " + Объект.Дата + "; сумма дока ;"+Объект.СуммаДокумента);
	КонецЕсли;
	
Иначе
	
	СуммаКомиссии=0;
	Сообщить("В назначении дока пустая строка; нельзя достать комиссию; " + Объект.Дата + "; сумма дока ;"+Объект.СуммаДокумента);
	
КонецЕсли; // Должны были выделить комиссию или присвоить 0

	// СуммаКомиссии в любом случае нулевая или положительная, главное, чтобы не отрицательная.
	// СуммаКомиссии тут число, либо после преобразования в число, либо после присвоения нуля.

	Если  СуммаКомиссии>0 Тогда // не пустая, и является числом. Т.к. может быть строка и что угодно!
		// Возврат СуммаКомиссии;
		Сообщить("Выделена сумма комиссии;"+СуммаКомиссии + "; в доке ;"  + Объект.Дата + "; сумма дока ;"+Объект.СуммаДокумента);
		// Сообщить("Дата+Платежка+Процент комиссии");
	Иначе
		// Сообщить об ошибке в платежке
		//Возврат 0; // Нет комиссии в назначении платежа
		Сообщить("Ошибка. Не нашли комиссию в назначении платежа, или отрицательное или нулевое число" + " в доке " + Объект.Дата + "; сумма дока ;"+Объект.СуммаДокумента);
	КонецЕсли;

	Объект.СуммаУслуг = СуммаКомиссии; // Посчитать!
	СтрокаРасшифровки.СуммаУслуг = Объект.СуммаУслуг;
    	
	Исключение
	
		Объект.СуммаУслуг = 0;	
		Сообщить("Исключение 2 сработало в загрузке комиссии экваринга " + Объект.Дата + "; сумма дока ;"+Объект.СуммаДокумента);
		
	КонецПопытки;
	
Иначе
	Для Каждого СтрокаПлатеж Из Объект.РасшифровкаПлатежа Цикл
		
		Если (Объект.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ОплатаПокупателя)
				ИЛИ (Объект.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ВозвратОтПоставщика) Тогда
			СтрокаПлатеж.СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.Автоматически;
		КонецЕсли;
		
	КонецЦикла;
КонецЕсли;

// ПСН
Выполнить(Алгоритмы.ЗаполнитьПорядокОтраженияАвансаПатент);

СчетаУчетаВДокументах.ЗаполнитьПередОтображениемПользователю(Объект);

 

РСА: Обработчик "После загрузки"

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

Все прочие реквизиты (Объект.Дата, Объект.СуммаДокумента, Объект.****) имеются до первой записи документа.

В сообщения стал выводить дату и сумму обрабатываемых документов.

Пишет так:

"Выделена сумма комиссии;21,35; в доке ;19.02.2023 11:59:59; сумма дока ;1 313,65"

 

 При загрузке в бухию, в обработке загрузки выводит толкьо первое или последнее сообщение; в мониторе выводит все сообщения.

 

Смотри: "Окно сообщений" в бухгалтерии как найти?

 

При загрузке с транзакциями процент экваринга не считается? Тестировать.

При загрузке с транзакциями никакие сообщения по команде "сообщить" не выводятся, или они попадают в журнал регистрации?

 

Трабла, что не вижу окно сообщений в бухии. Оно вроде появлялось, а куда делось и как открыть?

Сообщения вижу в мониторе. А окно сообщений должно быть справа  https://infostart.ru/1c/articles/104745/

Упоминаются какие-то оповещения вместо сообщений?

Вот ИТС https://its.1c.ru/db/metod8dev/content/3442/hdoc

 

Особенности обмена Далион и 1С:Бухгалтерия

1. В Далионе имеются инвентаризации, где есть товары с нулевым учетным и нулевым фактическим количеством. По таким товарам при проведении инвентаризации списываются превышения.

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

? В чем смысл проведения инвентаризации в бухии, если проводки не формируются ? Тогда и проведение ни на что не влияет?

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

 

 

2. В далионе возможны ситуации, когда излишки товара ПО ДОКУМЕНТУ "ИНВЕНТАРИЗАЦИЯ" приходуются с нулевой учетной стоимостью товара.

Нулевая учетная стоимость возникает:

- товары, поступившие "бонусом".

- товары, оприходованные по инвентаризации, если на момент такого оприходования не было закупочной стоимости. Так случается, если в доке "покупка" по ошибке не стоит галочка "регистрировать цены". Так в свою очередь всегда происходит при загрузке доков с ТСД. Надо исправлять!

В Далионе имеет смысл сделать настройки, чтобы при проведении инвентаризации система предупреждала, что приходуются излишки с нулевой учетной стоимостью. При загрузке таких инвентаризаций из Далиона в бухию документы оприходования не проводятся (для бухгалтерии оприходование товара без себестоимости - ошибочная операция).

В итоге в Далионе добавил контроль заполнения цены излишков и задним числом заполнил цены излишков в инвентаризациях.

 

3. Загрузка ОКС, где есть возвраты товара.

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

Для Далион релиз 2.0.24.04 написано, что исправлена "ошибка обмена с 1С: БП при наличии возвратов в ОКС". Это то самое исправление?

 

4. Загрузка документа "Затраты" из Далиона в бухгалтерию по стандартным правилам обмена не делается! Вот такая "подлянка".

Документ "Затраты" в Далионе относится к оперативному учету. Данные документов отражаются в отчете "Затраты". Проведение документа "Затраты" увеличивает задолженность поставщику. В бухгалтерию по документам "Затраты" ничего не выгружается!

В Бухгалтерию загружаются приходные накладные, где указаны услуги. Соответственно, для корректной выгрузки в 1С:Бух нужно учитывать затраты в Далионе документами "Приходная накладная".

Сделал обработку, которая скопировала документы "Затраты" в документ "Приходная накладная", и исходные документы "Затраты" сделала непроведенными (это нужно для удаления проводок в регистрах) и после пометила на удаление.

15.04.23

 

5. Автопревышения по ОКС в бухгалтерию не выгружаются по стандартным правилам обмена, которые были в релизах Далион до _____.

Внес исправления в правила обмена, чтобы превышения выгружались!

 

Памятка по учету (импорту) в 1С Бухгалтерию 02.08.2023

Платежки по уплате налогов при импорте с Далиона не проводятся. Счет учета, или субконто (налог,пеня,штраф) надо было указывать вручную.

Когда платежки были проведены в бухгалтерии, при повторной загрузке платежек проведенные документы по уплате налогов не изменялись!

 

Документ Инвентаризация в бухии каких либо проводок сам по себе не формирует.

На суммы разниц можно ввести списание и оприходование!


Чтобы обновить список доков в журналах бухии

- Меню справа "Еще", и выбрать пункт "Обновить".

- кнопка F5.

 
Как сделать отбор непроведенных документов в бухии

Ответ:

В программе 1С: Бухгалтерия предприятия редакция 3.0, данную настройку может произвести любой пользователь. Для этого зайдите в журнал, где требуется подобное оформление, на примере мы разберем «Поступления (акты, накладные)», далее по кнопке «Еще» - «Настроить список» (рис.1). В открывшемся окне переходите во вкладку «Отбор» - «Добавить новый элемент» - там выбираете «Проведен» - «Равно» - «Нет» (рис.2) – «Завершить редактирование». После это сформируется список не проведенных документов, а сверху появится поле быстрого доступа, где можно убрать этот отбор или вернуть на место (рис.3).

https://www.4dk.ru/news/question/20201022165342-kak-v-zhurnale-postupleniy-ili-zhe-realizatsiy-vyvesti-tolko-ne-provedennye-dokumenty-v-programme-1s-bukhgalteriya-predpriyatiya-redaktsiya-30