Имя: Пароль:
1C
1C 7.7
v7: Проблема с НомеромСтроки в Регистре
,
0 neetro
 
20.01.14
13:09
Привет всем. Проблема для меня совсем не понятная. Может то сталкивался, подскажет как решить.
Имеем:
1С 7.7 (27 релиз)на SQL server 2000 (ОС Win Server 2003 x32)
1С конфигурация Алкогольная (от КТ-Алкоголь, какая версия ТиС в основе - хз, но 9.2 точно).
Есть отчет формирования алкогольной декларации, который в запросе цепляет данные из Алкогольного регистра. Группировки там ТекДок и СтрокаДокумента. До недавнего времени все работало приемлемо. Сейчас тупит. Берет какую то одну строку из документа (как я думал, оказалось из регистра) остальные не обрабатывает. Анализ выявил проблему. В Движениях Регистра в поле НомерСтроки пишется произвольное число (!). То есть строк в документе 13, позиций в регистре 13, но у всех номер строки = 62. Для этого же документа номер строки в регистре ПартииНаличие корректно встают с 1 по 13, В регистре Покупатели НомерСтроки = 3 (строка там одна). Короче черти че и документов таких полно.
Внимаение! Если перепровести документ Руками, строчки везде встают как надо! Вывод в модуле документа все корректно прописано, иначе проблема после перепроведения руками тоже бы осталась. Стоит запустить перепроведение за месяц стандартными средствами = опять та же картина и опять номер строки во всех 13 строчках = 62. Если перепровести доки за день (только один вид документа = Поступление), то строчки опять же нормализуются.

Делал Выгрузку\Загрузку. ТИИ полное. Перезагрузка сервера + SQL сервера.

Работал с копией на локальном компьютере (другая машина на Win 7) в ДБФ режиме (чтобы исключить проблемы с жестким на серваке). Делал все то же самое + удаление файлов cdx.

Короче я хз что еще куда смотреть.
1 пипец
 
20.01.14
13:14
ордночек в каталоге болтается ?
ПривязыватьСтроку ???
2 1dvd
 
20.01.14
13:14
Покажи как в документа используется ПривязыватьСтроку();
3 1dvd
 
20.01.14
13:15
при групповом проведении некоторые переменные могут не очищаться, когда заканчивается проведение одного документа и начинается проведение следующего. Надо очищать переменные перед использованием!
4 viktor_vv
 
20.01.14
13:19
(3) +1. Глобальная переменная могут использоваться в ПривязыватьСтроку(<НомерСтроки>).
5 КонецЦикла
 
20.01.14
13:28
Посмотри отличаются ли оперативное и не оперативное проведение (ну типа ИтогиАктуальны())
При групповом проведении переносится ТА.
6 МихаилМ
 
20.01.14
13:30
известная особенность
группового перепроведения:

модуль проведения документа компилируется один раз.
7 neetro
 
20.01.14
13:53
(1) что простите? Файл какой то?
(2) Перебор по редвижениям регистра Партии (это там где нормальны строки)
СтрДок=РегПарт.НомерСтроки();

Потом проверка на пустую строку и

Конт.ПолучитьСтрокуПоНомеру(СтрДок);

ну и сама привязка

Конт.Регистр.ДвиженияАлкоголя.ПривязыватьСтроку(СтрДок);
8 neetro
 
20.01.14
13:54
(6) м, и?
9 neetro
 
20.01.14
13:56
(5) ну там стандартно в модуле документа проверка

Если ИтогиАктуальны() = 0 Тогда
ВремРегистры.Актуальность(1);
ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент());
КонецЕсли;
    
Потом передача проведения в глобальник
10 neetro
 
20.01.14
13:58
(5) ну и в глобальнике потом

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