1. Vida 10 17.04.19 12:39 Сейчас в теме

Предупреждение при синхронизации, но с документом все ОК

Обмен заканчивается без предупреждений в окне "Предупреждения при синхронизации данных"

но если заглянуть в журнал регистрации то там их много.

Проверила эти документы: все с ними хорошо, и проведены (хотя в предупреждении пишет что не удалось провести). И док-основание проведен и все (кажется) норм заполнено там.

Текст такой:

Не удалось провести документ Счет-фактура полученный 2080-001025 от 29.03.2019 15:38:44, полученный из другой информационной базы. По причине Некорректно заполнена колонка "Документ-основание" в строке 1 списка "Документы-основания счета-фактуры".
Документ не проведен. Счет-фактуру можно провести только на основании проведенного документа..
Возможно не заполнены все реквизиты, обязательные к заполнению.


Синхронизация УНФ - БП.
УНФ старая правила очень переписанные.
Эти предупреждения (странные) посыпались после последнего обновления и как бы с данными все хорошо (вроде бы) но ведь непорядок...

Наведите на мысль: с чего такое может вдруг быть? Где искать баг?
Прикрепленные файлы:
Вознаграждение за ответ
Показать полностью
Найденные решения
12. tusv 147 18.04.19 09:58 Сейчас в теме +0.24 $m
(8) Запросом. С сортировкой по моменту времени
ВЫБРАТЬ 
	&РТУ КАК Документ,
	ВЫРАЗИТЬ(&РТУ КАК Документ.РеализацияТоваровУслуг).МоментВремени КАК МоментВремени

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	&СчетФактура,
	ВЫРАЗИТЬ(&СчетФактура КАК Документ.СчетФактураВыданный).МоментВремени

УПОРЯДОЧИТЬ ПО
	МоментВремени УБЫВ
Показать

Увы Счет фактура раньше при одинаковом времени.
Варианты
1. Самое простое.В ПКО прибавлять секунду, если Даты равны и поиск только по УИДу. Использовать обязательно функцию Мин(Источник.ДокументОснование.Дата+1 , КонецДня(Источник.ДокументОснование.Дата))
2.Вариант муторный. Определить свой порядок проведения. В ПКО добавить Параметр Порядок, В глобальный обработчик "После загрузки объекта" добавлять Объект в таблицу значений и проводить в После загрузки данных
Пример
Если ИмяТипаОбъекта = "Документ" и не ПараметрыОбъекта = Неопределено и не ПараметрыОбъекта["Порядок"] = Неопределено  Тогда
	Если  НЕ Параметры.Свойство("ТаблицаДокументов") Тогда
		Параметры.Вставить("ТаблицаДокументов",Новый ТаблицаЗначений);
		Параметры.ТаблицаДокументов.Колонки.Добавить("Порядок",Новый ОписаниеТипов("Число"));
		Параметры.ТаблицаДокументов.Колонки.Добавить("Объект");
	КонецЕсли;	
	НоваяСтрока = Параметры.ТаблицаДокументов.Добавить();
	НоваяСтрока.Порядок = ПараметрыОбъекта["Порядок"];
	НоваяСтрока.Объект = Объект;
КонецЕсли;
Показать
Остальные ответы
Избранное Подписка Сортировка: Древо
2. tusv 147 17.04.19 13:14 Сейчас в теме
(1) 1. Счет фактура проводится раньше
2. Документ основание указан в шапке, а не табличной части ДокументыОснования
3. 1 и 2 вместе
4. wolfalan 25 17.04.19 15:26 Сейчас в теме
Проверьте проводки и движения по регистрам после обмена и после ручного проведения, чтобы убедиться, что данные хорошо загрузились.
Если все ок, то смотреть (2).

.
8. Vida 10 18.04.19 00:12 Сейчас в теме
(4)Смотрела проводки и движения. Одинаковые.
из этого:
1. Счет фактура проводится раньше
2. Документ основание указан в шапке, а не табличной части ДокументыОснования

проверила №2 ДокументОснование есть и в шапке и в табл части ДокументыОснования

Подскажите, как проверить №1 время у них одинаковое до секунды
12. tusv 147 18.04.19 09:58 Сейчас в теме +0.24 $m
(8) Запросом. С сортировкой по моменту времени
ВЫБРАТЬ 
	&РТУ КАК Документ,
	ВЫРАЗИТЬ(&РТУ КАК Документ.РеализацияТоваровУслуг).МоментВремени КАК МоментВремени

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	&СчетФактура,
	ВЫРАЗИТЬ(&СчетФактура КАК Документ.СчетФактураВыданный).МоментВремени

УПОРЯДОЧИТЬ ПО
	МоментВремени УБЫВ
Показать

Увы Счет фактура раньше при одинаковом времени.
Варианты
1. Самое простое.В ПКО прибавлять секунду, если Даты равны и поиск только по УИДу. Использовать обязательно функцию Мин(Источник.ДокументОснование.Дата+1 , КонецДня(Источник.ДокументОснование.Дата))
2.Вариант муторный. Определить свой порядок проведения. В ПКО добавить Параметр Порядок, В глобальный обработчик "После загрузки объекта" добавлять Объект в таблицу значений и проводить в После загрузки данных
Пример
Если ИмяТипаОбъекта = "Документ" и не ПараметрыОбъекта = Неопределено и не ПараметрыОбъекта["Порядок"] = Неопределено  Тогда
	Если  НЕ Параметры.Свойство("ТаблицаДокументов") Тогда
		Параметры.Вставить("ТаблицаДокументов",Новый ТаблицаЗначений);
		Параметры.ТаблицаДокументов.Колонки.Добавить("Порядок",Новый ОписаниеТипов("Число"));
		Параметры.ТаблицаДокументов.Колонки.Добавить("Объект");
	КонецЕсли;	
	НоваяСтрока = Параметры.ТаблицаДокументов.Добавить();
	НоваяСтрока.Порядок = ПараметрыОбъекта["Порядок"];
	НоваяСтрока.Объект = Объект;
КонецЕсли;
Показать
5. Vida 10 17.04.19 17:13 Сейчас в теме
(2)
Сейчас проверю 1 и 2. Но мне кажется что если бы подобное имело место, то эта странность бы возникла не 2 дня назад...
6. Vida 10 17.04.19 21:47 Сейчас в теме
(2)Еще странность
наверное я зря думаю на обновление БП
тк оно прошло 5 апреля, а предупреждения с 14

Сравнила стандартные правила обмена из БП до и после обновления = они идентичны.
7. tusv 147 17.04.19 22:29 Сейчас в теме
(6)Проверьте регистр сведений ПравилаДляОбменаДанными. Могет быть там загружены другие правила
9. Vida 10 18.04.19 00:17 Сейчас в теме
(7)Проверила, в регистре все правильно. Файлы с моими датами.
Прикрепленные файлы:
11. Vida 10 18.04.19 09:13 Сейчас в теме
(2)Что 2 дня назад такого не было, это я ошиблась. Просто журнал регистрации пустой. Подняла базы недельной давности - ситуация в них такая же.
13. tusv 147 18.04.19 10:11 Сейчас в теме
(11) На самом деле. При проведении Реализации перепроводится и счет фактура. То есть. Провелась Счет фактура - заругалась, провелась накладная - все встало на свои места. Помогут варианты в (12) А может быть Хватит в ПКО счета фактуры Перед выгрузкой или Перед загрузкой прописать РежимЗаписи = "Запись"
14. Vida 10 18.04.19 10:28 Сейчас в теме
(13)Очень похоже на правду. Сейчас буду тестировать 12 и 13.
15. Vida 10 18.04.19 10:29 Сейчас в теме
(13)Кажется, у вас глубокие знания конвертации. Можете посоветовать курс или литературу?
16. tusv 147 18.04.19 11:21 Сейчас в теме
(15) Мой учебник это шишки набитые с 2005 года и внимательное чтение Информации по обработчикам. Здесь много хороших статей. Вчера например промелькнула дельная статья
Кстати. Установки Режима записи в Запись достаточно. Счет фактура не будет проводится, а свойство Проведен в истина заставит Реализацию провести счет фактуру
19. Vida 10 19.04.19 10:56 Сейчас в теме
(16)Нашла вот какую ерунду:

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


А этот Объект.ПроверитьЗаполнение() вызывает
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
из модуля объекта документа СчетФактураПолученный
и ней в том числе такой фрагмент:

		Для каждого СтрокаТЧ Из ДокументыОснования Цикл
			Если ЗначениеЗаполнено(СтрокаТЧ.ДокументОснование)
				И ТипЗнч(СтрокаТЧ.ДокументОснование) <> Тип("ДокументСсылка.ДокументРасчетовСКонтрагентом")
				И ТипЗнч(СтрокаТЧ.ДокументОснование) <> Тип("ДокументСсылка.ОтчетКомитентуОПродажах")
				И НЕ СтрокаТЧ.ДокументОснование.Проведен Тогда
					ТекстСообщения = НСтр("ru = 'Документ не проведен. Счет-фактуру можно провести только на основании проведенного документа.'");
					ТекстСообщения = ОбщегоНазначенияКлиентСервер.ТекстОшибкиЗаполнения(
						"Колонка", 
						"Корректность", 
						"Документ-основание", 
						СтрокаТЧ.НомерСтроки, 
						"Документы-основания счета-фактуры", 
						ТекстСообщения);
					ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
						ТекстСообщения,, "НадписьДокументыОснования",, Отказ);
			КонецЕсли;
		КонецЦикла;
Показать


и это и есть текст предупреждений которые мне не нравятся.

те эту СФполуч таки пытаются провести при непроведенном ДокументеОсновании

аааа((((((((
17. Vida 10 19.04.19 10:41 Сейчас в теме
(13)Наверное у меня какая-то другая причина или не пойму...
Проверяла запросом порядок моментов времени, на которые только что получила предупреждения = все хорошо, момент у счет-фактуры позже.

Но ведь то что моменты позже из этого не следует что их не проводили раньше?

Добавляла
РежимЗаписи = "Запись" в ПКО ПередЗагрузкой.
И ничего не изменилось, все то же самое. Пробовала даже РежимЗаписи = "ОтменаПроведения"

Уже думаю может действительно там что-то не то 1 строкой ДокументовОснований
18. tusv 147 19.04.19 10:55 Сейчас в теме
(17)Прошу прощения. Я Вас ввел в заблуждение с секундами. Все таки 12 пункт 2. На самом деле не критично, счет фактура все равно проводится правильно, если верить типовым правилам и конфигурациям. Но все таки скиньте файл правил. Поправлю. Мне так проще
20. Vida 10 19.04.19 11:54 Сейчас в теме
(18)Похоже все таки секунды?
Смотрю ту жеобработку КонвертацияОбъектовИнформационныхБаз:

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


Тупо по дате?
23. tusv 147 21.04.19 10:26 Сейчас в теме
(20)
ВыполнитьОтложенноеПроведениеДокументов()

Как то натолкнула на мысль экспортная функция ДокументыДляОтложенногоПроведения(). Этож можно использовать в После загрузки данных!
Добавить Колонку Порядок, пробежаться Счет фактуре присвоить порядок выше, отсортировать,
Процедуру ВыполнитьОтложенноеПроведениеДокументов помещаем в алгоритмы. Чуть подшаманим с сортировкой по Дате и Порядку, остальное без изменений.
А в обработчике После загрузки данных пишем
//Проверим, что обмен идет из обработки КонвертацияОбъектовИнформационныхБаз, а не через универсальную
Если Метаданные().Имя = "КонвертацияОбъектовИнформационныхБаз" Тогда
	ДокументыДляОтложенногоПроведения().Колонки.Добавить("Порядок",Новый ОписаниеТипов("Число"));
	Для Каждого Стр из ДокументыДляОтложенногоПроведения() Цикл
		Если ТипЗнч(Стр.ДокументСсылка) = Тип("ДокументСписок.СчетФактураВыданный") Тогда
			стр.Порядок = 10;
		КонецЕсли;	
	КонецЦикла;
	Выполнить(Алгоритмы.ВыполнитьОтложенноеПроведениеДокументов);
        //Отложенное проведение уже выполнили, очистим
	ДокументыДляОтложенногоПроведения().Очистить();
КонецЕсли;
Показать
21. Vida 10 19.04.19 12:31 Сейчас в теме
(18)Уменьшила время ПК в базе источнике и наладилось.
в 12 №1 = верное решение!
Вот нет, что бы раньше попробовать. Стыдно перед работодателем столько времени на такую фигню тратить.

Как думаете лучше в правилах время править или в базе источнике при создании (например)?

На скрине это я уже своих предупреждения выводила, чтобы порядок проведения видеть.
Прикрепленные файлы:
24. tusv 147 21.04.19 11:49 Сейчас в теме
(21)
Как думаете лучше в правилах время править или в базе источнике при создании (например)?

В базе? А зачем лишнее телодвижение со временем? Есть смысл, когда проведение не оперативное, а приход позже расхода в одну секунду.
Но. Мне сейчас нравиться мое же решение в (23). Возьму себе на вооружение. Хотя он и повторяет мой же алгоритм, но не до списали граждане из 1С. Двоешники:)
22. Vida 10 19.04.19 12:39 Сейчас в теме
(18)Вот интересно почему

ДокументыДляОтложенногоПроведения().Сортировать("ДатаДокумента");

при одинаковой дате ставит счет-фактуру полученную вперед?
3. ksen 17.04.19 13:17 Сейчас в теме
Проверьте авансы на всякий случай и даты связанных документов, а еще попробуйте распровести и провести еще раз какой-нибудь документ.
Ошибок при обмене не должно быть.
10. Vida 10 18.04.19 00:25 Сейчас в теме
(3)Авансы автоматические. В связанных документах только ПоступлениеТоваровУслуг и Сч-ф полученная. Их дата время совпадает.

Распроводила и проводила.

При повторном обмене (меняла комментарии) все повторяется: пишет что предупреждений нет, но в журнале они появились.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

Работа от Инфостарт
Санкт-Петербург
Временный (на проект)

Руководитель отдела внедрения 1С
Новосибирск
зарплата от 60 000 руб. до 160 000 руб.
Полный день

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