Z1 писал(а) 11. Октября 2011 :: 12:30: Цитата:Если перебор идет сначала по операциям потом по его проводкам то надо смотреть в sql чем отличается эта операция после первого и второго проведения.
ну можно и на 1с в отладчике посмотреть сначала что не так при переборе операций
В общем так:
1. при проведении документа различий ни каких! Что в первом проведении, что во втором происходит одно и тоже (до строк кода выполняется одно и тоже).
2 При формировании карточки счета, операция документа не выбирается
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьРазделительУчета(РазделительУчета);
Если ВыбВидСубконто1.Выбран() = 0 Тогда
ОтборСубк1 = 3;
КонецЕсли;
Если ВыбВидСубконто2.Выбран() = 0 Тогда
ОтборСубк2 = 3;
КонецЕсли;
Если ВыбВидСубконто3.Выбран() = 0 Тогда
ОтборСубк3 = 3;
КонецЕсли;
Если (ВыбВидСубконто1 = ВыбВидСубконто2) И (ОтборСубк1 <> 3) И (ОтборСубк2 <> 3) Или
(ВыбВидСубконто1 = ВыбВидСубконто3) И (ОтборСубк1 <> 3) И (ОтборСубк3 <> 3) Или
(ВыбВидСубконто3 = ВыбВидСубконто2) И (ОтборСубк3 <> 3) И (ОтборСубк2 <> 3) Тогда
Предупреждение("Выбраны одинаковые виды субконто!");
Возврат;
КонецЕсли;
Заголовок = "Карточка счета "+Счет;
Заголовок1 = "";
Если ОтборСубк1 <> 3 Тогда // 3 - без учета субконто
Заголовок1 = Заголовок1+?(Заголовок1="","","; ")+Строка(ВыбВидСубконто1)+": "+ЗначенияВСтроку(Субконто1);
Ит.ИспользоватьСубконто(ВыбВидСубконто1, Субконто1, ОтборСубк1);
КонецЕсли;
Если ОтборСубк2 <> 3 Тогда // 3 - без учета субконто
Заголовок1 = Заголовок1+?(Заголовок1="","","; ")+Строка(ВыбВидСубконто2)+": "+ЗначенияВСтроку(Субконто2);
Ит.ИспользоватьСубконто(ВыбВидСубконто2, Субконто2, ОтборСубк2);
КонецЕсли;
Если ОтборСубк3 <> 3 Тогда // 3 - без учета субконто
Заголовок1 = Заголовок1+?(Заголовок1="","","; ")+Строка(ВыбВидСубконто3)+": "+ЗначенияВСтроку(Субконто3);
Ит.ИспользоватьСубконто(ВыбВидСубконто3, Субконто3, ОтборСубк3);
КонецЕсли;
Если ПоВалюте = 1 Тогда
Заголовок=Заголовок+?(Заголовок1="","","; ")+Валюта;
Если Ит.ВыполнитьЗапрос(НачДата, КонДата, Счет,, Валюта,, "Проводка") = 0 Тогда
Возврат;
КонецЕсли;
Иначе
Если Ит.ВыполнитьЗапрос(НачДата, КонДата, Счет,,,, "Проводка") = 0 Тогда
Возврат;
КонецЕсли;
КонецЕсли;
Этот код выбирает все кроме операции документа при первом его проведении. При повторном проведении Операция волшебным образом появляется.
3. Проверка таблицы операций на сервере показала, что записи операций и проводок в таблицах присутствуют и при первом и при втором проведении. Различие только во времени документа (оно и понятно)
Что то происходит на сервере, либо при выборке, либо при проведении документа. Как это отловить на сервере SQL?