Имя: Пароль:
1C
1C 7.7
v7: Ошибка при проведении документа
,
0 MikaelW
 
03.07.13
10:19
Входные данные:
ТИС 970 с небольшими доработками, но в основе своей типовая.
УРБД - 3 базы(СО + 2 ПБ).
Механизм обмена не полный. Полностью обмениваются только справочники.
В ПБ создается реализация возвраты поставщику и приходы от поставщики и касса. Остальное бухия делает в СО.


Каждую ночь база CO восстанавливает ГП все работает как бы нормально.

Но иногда в ПБ при попытке произвести ВОЗВРАТ ПОСТАВЩИКУ выдает ошибку:

Если РегКнигаПродаж.КредДокумент.ДатаДок >= глНачало2006года Тогда
{Глобальный модуль(9993)}: Операции сравнения на больше-меньше допустимы только над значениями совпадающих базовых типов (число, строка, дата)

Где собака порылась?

Заранее всем спасибо!
1 mikecool
 
03.07.13
10:20
РегКнигаПродаж.КредДокумент - здесь пусто
или глНачало2006года пусто
2 MikaelW
 
03.07.13
10:21
(1) базе год.
3 MikaelW
 
03.07.13
10:26
Как решить проблему?
4 aka AMIGO
 
03.07.13
10:27
окно сообщений, скорей всего невидимо..
можно перед условием поставить операторы создания текстового файлика, в него вывести значения сравниваемых переменных
5 FoundMarket
 
03.07.13
10:34
я повесил у себя 1spy.dll и смотрю что происходит при перепроведении
6 FoundMarket
 
03.07.13
10:48
Процедура ПриОткрытии()

   Попытка
       Шпион=СоздатьОбъект("Шпион1С");
   Исключение
       Если ЗагрузитьВнешнююКомпоненту("1spy.dll")=0 Тогда
           Предупреждение("Внешняя компонента 1spy.dll не загружена",10);
           СтатусВозврата(0);
           Возврат;
       КонецЕсли;
       Шпион=СоздатьОбъект("Шпион1С");
   КонецПопытки;
   
   ТМП = " "+ДатаГод(ДатаКонца)+"-"+Формат(ДатаМесяц(ДатаКонца),"Ч(0)2.0")+"-"+Формат(ДатаЧисло(ДатаКонца),"Ч(0)2.0");
   Файл="C:\Exchange\CP\"+"перепроведение "+ТМП+".txt";    
   
   //Очистить();
   
   Сформировать();  
   
   ПриЗакрытии();
   
КонецПроцедуры
7 FoundMarket
 
03.07.13
10:49
Процедура ПриЗакрытии()
   
   Попытка
       Шпион.ЗавершитьЗаписьВФайл();
   Исключение
   КонецПопытки;
   
КонецПроцедуры
8 FoundMarket
 
03.07.13
10:51
Процедура Сформировать()      //*** блок перепроведения для задолженности
   
   Попытка
       Шпион.НачатьЗаписьВФайл(Файл);
   Исключение
   КонецПопытки;

//// далее текст процедуры
//как это работает? Шпион пишет все сообщения (Сообщить) в //текстовый файл

КонецПроцедуры
9 Voronve
 
03.07.13
10:51
(0) РегКнигаПродаж.КредДокумент - здесь пустой документ. разбирайся почему
10 пипец
 
03.07.13
10:52
В ПБ создается реализация возвраты поставщику и приходы от поставщики и касса. Остальное бухия делает в СО (с)
11 FoundMarket
 
03.07.13
10:53
теперь просто в тело обработки перепроведения напиши еще и вот это

Сообщить(" документ где что то вылетает: " +РегКнигаПродаж.КредДокумент.Текущийдокумент());
12 FoundMarket
 
03.07.13
10:54
перед ошибкой в последней строке будет нормальный документ, следующий за ним - с ошибкой :)
13 Voronve
 
03.07.13
11:03
(0) Оберни в коде это:
Если РегКнигаПродаж.КредДокумент.ДатаДок >= глНачало2006года Тогда
вот так
Если ПустоеЗначение(РегКнигаПродаж.КредДокумент) = 0 Тогда
  Если РегКнигаПродаж.КредДокумент.ДатаДок >= глНачало2006года Тогда
14 aka AMIGO
 
03.07.13
11:05
тогда он не узнает причину
15 Voronve
 
03.07.13
11:23
В обертке визжать можно, об отсутствии дока; да и судя по формулировке вопроса - ему ошибку убрать при проведении, а там хоть трава не расти
16 MikaelW
 
03.07.13
12:46
(15) понятно что дело в УРБД. Что-то из СО не перекачивается в ПБ. Где-то в правилах миграции косяк!
17 MikaelW
 
03.07.13
12:46
Всем спасибо за советы!
Мне главное понятен путь направления!
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший