Имя: Пароль:
1C
1С v8
Ошибка в обработке проведение по партиям.
0 Boudybuilder
 
23.10.12
14:46
{ОбщийМодуль.ЗаполнениеДокументов.Модуль(2375)}: Ошибка при вызове метода контекста (Выполнить)
       Выборка = Запрос.Выполнить().Выбрать();
по причине:
{(22, 40)}: Несовместимые типы "ССЫЛКА"
И (Последовательность.Регистратор <<?>>ССЫЛКА Документ.КорректировкаСтоимостиСписанияТоваров


Что может быть?
1 Нууф-Нууф
 
23.10.12
14:47
мне кажется 1с не может совместить типы
2 Miss1C
 
23.10.12
14:47
(0)Весь запрос в студию
3 Aprobator
 
23.10.12
14:47
фига се. Имхо, последовательность упала. Регистратор оказался неффига не документ.
4 Miss1C
 
23.10.12
14:48
(0)Такое ощущение что у вашего регистра, нет такого регистратора
5 Boudybuilder
 
23.10.12
14:49
(2)

Процедура КорректировкаРегистрацииВПоследовательности()

   Для Каждого ТекПоследовательность Из Метаданные.Последовательности Цикл
       ТекстЕстьДвижения = "
                       |    ВЫБОР
                       |        КОГДА СписанныеТоварыСрезПоследних.Регистратор ЕСТЬ NULL";
       Для Каждого ДвиженияВлияющиеНаПоследовательность Из ТекПоследовательность.Движения Цикл
           ТекстЕстьДвижения = ТекстЕстьДвижения + "
                       |                И РегистрНакопления" + ДвиженияВлияющиеНаПоследовательность.Имя + ".Регистратор ЕСТЬ NULL";
       КонецЦикла;
       ТекстЕстьДвижения = ТекстЕстьДвижения + "
                       |            ТОГДА ЛОЖЬ
                       |        ИНАЧЕ ИСТИНА
                       |    КОНЕЦ";

       ТекстЗапроса = "ВЫБРАТЬ
                       |    Последовательность.Регистратор КАК Регистратор,
                       |    Последовательность.Регистратор.Проведен КАК Проведен,
                       |    Последовательность.Регистратор.Дата КАК Дата,
                       |    Последовательность.Период КАК Период,
                       |" + ТекстЕстьДвижения + " КАК ЕстьДвижения
                       |ИЗ
                       |    Последовательность." + ТекПоследовательность.Имя + " КАК Последовательность
                       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СписанныеТовары КАК СписанныеТоварыСрезПоследних
                       |        ПО Последовательность.Регистратор = СписанныеТоварыСрезПоследних.Регистратор
                       |        И СписанныеТоварыСрезПоследних.НомерСтроки = 1";
       Для Каждого ДвиженияВлияющиеНаПоследовательность Из ТекПоследовательность.Движения Цикл
           ТекстЗапроса = ТекстЗапроса + "
                       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления." +ДвиженияВлияющиеНаПоследовательность.Имя + ".Обороты(, , Регистратор, ) КАК РегистрНакопления" + ДвиженияВлияющиеНаПоследовательность.Имя + "
                       |        ПО Последовательность.Регистратор = РегистрНакопления" + ДвиженияВлияющиеНаПоследовательность.Имя + ".Регистратор";
       КонецЦикла;

       ТекстЗапроса = ТекстЗапроса + "
                       |ГДЕ
                       |    НЕ (Последовательность.Регистратор.Проведен
                       |        И (Последовательность.Регистратор ССЫЛКА Документ.КорректировкаСтоимостиСписанияТоваров
                       |           ИЛИ Последовательность.Регистратор.Дата = Последовательность.Период)
                       |       И " + ТекстЕстьДвижения + ")
                       |";

       Запрос = Новый Запрос(ТекстЗапроса);

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

           Если Не Выборка.ЕстьДвижения Тогда
               НаборЗаписей = Последовательности[ТекПоследовательность.Имя].СоздатьНаборЗаписей();
               НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
               НаборЗаписей.Записать();
           КонецЕсли;
       КонецЦикла;
   КонецЦикла;

КонецПроцедуры // КорректировкаРегистрацииВПоследовательности()
6 Boudybuilder
 
23.10.12
14:50
(4) Я влюбился!
7 Нууф-Нууф
 
23.10.12
14:50
(6) не старайся. все равно не дадут
8 Boudybuilder
 
23.10.12
15:25
Блин , и как тут проблемку вычислить то?
9 zmaximka
 
23.10.12
15:28
Запросом к последовательности глянуть что сидит в поле регистратор
10 ProProg
 
23.10.12
15:30
тестирование исправление срочно.
11 pessok
 
23.10.12
15:33
лол. небось спер в своб нетленку обработку из типовой?
12 mikecool
 
23.10.12
15:34
(8) как не вычисляй - все равно не даст )
13 Boudybuilder
 
23.10.12
15:53
Смотрю обработку

Проведение по партиям выполнено на:

Упр. учет: 29.09.2012 11:47:18 (<Объект не найден> (129:a6b8485b398d6c8d11e209fc55ab2bec))
14 Boudybuilder
 
23.10.12
15:54
ВЫБРАТЬ
   ПартионныйУчетГраницы.Регистратор,
   ПартионныйУчетГраницы.Период КАК Период
ИЗ
   Последовательность.ПартионныйУчет.Границы КАК ПартионныйУчетГраницы

УПОРЯДОЧИТЬ ПО
   Период


И результат тот самый удалить границу может? Но как?
15 zmaximka
 
23.10.12
16:02
тогда (10)
16 Boudybuilder
 
23.10.12
16:05
(15) ОК.
параметры какие там установить? Удалять или Создавать?
17 cdiamond
 
23.10.12
16:06
Я как-то загружал базу из dt и где-то на 3/4 пришлось прервать, потом забыл что прерывалось, залез в базу и при попытке проведения такая же хрень вылезла :)
18 zmaximka
 
23.10.12
16:07
Лучше создавать(ИМХО), потом удалишь созданный объект и он удалится из последовательности
19 zmaximka
 
23.10.12
16:07
только на копии проверь сперва
20 Aprobator
 
23.10.12
16:09
(13) а дык - битая ссылка.
21 Boudybuilder
 
23.10.12
16:15
(20) В таком случае что делать?
22 Boudybuilder
 
23.10.12
16:20
Как запросом вывести эти несуществующие ссылки?
23 eklmn
 
гуру
23.10.12
16:23
ТиИ за тебя все сделать может
24 Boudybuilder
 
23.10.12
16:30
(23) Я сделал ТиИ. А толку - 0!
25 zmaximka
 
23.10.12
16:31
с какими флажками?
26 Boudybuilder
 
23.10.12
16:32
Со всеми.
И все создавать взял.
27 zmaximka
 
23.10.12
16:33
а теперь найди созданный документ и удали его
28 Boudybuilder
 
23.10.12
16:34
(27) Опа... А как ? )))
29 zmaximka
 
23.10.12
16:41
ну епта. вариантов масса. через универсальный журнал документов в который включи все партиеобразующие документы за 29-е сентября
30 Maniac
 
23.10.12
17:09
УТ старая небось. обновится. кажется был баг в типовой. исправляли они.
31 Boudybuilder
 
23.10.12
17:40
(29) В конфигураторе его создать?
32 Boudybuilder
 
23.10.12
21:55
(29) Универсальный журнал самому создавать надо в конфигураторе?
33 Boudybuilder
 
23.10.12
21:59
Если в запросе в этом месте на условие выходит ошибка :

Несовместимые типы "ССЫЛКА"
И (Последовательность.Регистратор <<?>>ССЫЛКА Документ.КорректировкаСтоимостиСписанияТоваров



То может както запросом получить ссылки чтобы проверить?
34 Boudybuilder
 
23.10.12
22:00
Вот в отладчике нормально получил текст запроса , на котором спотыкается :



ВЫБРАТЬ
   Последовательность.Регистратор КАК Регистратор,
   Последовательность.Регистратор.Проведен КАК Проведен,
   Последовательность.Регистратор.Дата КАК Дата,
   Последовательность.Период КАК Период,

   ВЫБОР
       КОГДА СписанныеТоварыСрезПоследних.Регистратор ЕСТЬ NULL
               И РегистрНакопленияПартииТоваровНаСкладах.Регистратор ЕСТЬ NULL
               И РегистрНакопленияПартииТоваровПереданные.Регистратор ЕСТЬ NULL
           ТОГДА ЛОЖЬ
       ИНАЧЕ ИСТИНА
   КОНЕЦ КАК ЕстьДвижения
ИЗ
   Последовательность.ПартионныйУчет КАК Последовательность
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СписанныеТовары КАК СписанныеТоварыСрезПоследних
       ПО Последовательность.Регистратор = СписанныеТоварыСрезПоследних.Регистратор
       И СписанныеТоварыСрезПоследних.НомерСтроки = 1
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Обороты(, , Регистратор, ) КАК РегистрНакопленияПартииТоваровНаСкладах
       ПО Последовательность.Регистратор = РегистрНакопленияПартииТоваровНаСкладах.Регистратор
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровПереданные.Обороты(, , Регистратор, ) КАК РегистрНакопленияПартииТоваровПереданные
       ПО Последовательность.Регистратор = РегистрНакопленияПартииТоваровПереданные.Регистратор
ГДЕ
   НЕ (Последовательность.Регистратор.Проведен
       И (Последовательность.Регистратор ССЫЛКА Документ.КорректировкаСтоимостиСписанияТоваров
          ИЛИ Последовательность.Регистратор.Дата = Последовательность.Период)
      И
   ВЫБОР
       КОГДА СписанныеТоварыСрезПоследних.Регистратор ЕСТЬ NULL
               И РегистрНакопленияПартииТоваровНаСкладах.Регистратор ЕСТЬ NULL
               И РегистрНакопленияПартииТоваровПереданные.Регистратор ЕСТЬ NULL
           ТОГДА ЛОЖЬ
       ИНАЧЕ ИСТИНА
   КОНЕЦ)
35 Boudybuilder
 
23.10.12
22:58
Или может както очистить Последовательности  ,и перепровести все заново?
36 Boudybuilder
 
24.10.12
08:09
Даже скачал был обработку с инфостарта для удаления записей с битыми ссылками... 0!
37 hhhh
 
24.10.12
09:30
(36)

   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    Приказы.Регистратор,
   |    ЕСТЬNULL(Приказы.Регистратор.Номер, """") КАК Номер
   |ИЗ
   |    Последовательность.КадровыеПриказыОрганизаций КАК Приказы
   |ГДЕ
   |    Приказы.Регистратор.Номер ЕСТЬ NULL
   |   ";
   
   Таб = Запрос.Выполнить().Выгрузить();
   Для Каждого Стр Из Таб Цикл
       Сообщить("--- " + Стр.Регистратор);
       Наб = Последовательности.КадровыеПриказыОрганизаций.СоздатьНаборЗаписей();
       Наб.Отбор.Регистратор.Установить(Стр.Регистратор);
       Наб.ОбменДанными.Загрузка = Истина;
       Наб.Записать();
   КонецЦикла;
   Сообщить("ОК");
38 zmaximka
 
24.10.12
10:36
У тебя теперь нет битых ссылок. запусти проведение по партиям и увидишь на каком документе споткнется
AdBlock убивает бесплатный контент. 1Сергей