Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) ИТЗ.Разность и поиск по ключу. (число прочтений - 5725 )
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
ИТЗ.Разность и поиск по ключу.
26. Августа 2010 :: 07:30
Печать  
во вложении - обработка, которая работает так:
1. Создается Слепок объекта. Результат - ИТЗ_1 с тремя колонками "ИмяРеквизита,ЗначениеРеквизита,Многострочный"
2. Создается Слепок ТОГО ЖЕ объекта. Результат ИТЗ_2
3. Создаем индекс по всем трем колонкам для обоих таблиц
4. Выполняем метод "Разность"
Я в итоге ожидал увидеть ПУСТУЮ таблицу, т.к. таблице идентичны. Но мои ожидание не подтвердились.

Объясните, пожалуйста, такое поведение ИТЗ.
  

_____________006.ert ( 8 KB | Загрузки )
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТЗ.Разность и поиск по ключу.
Ответ #1 - 26. Августа 2010 :: 07:32
Печать  
Пока писАл, решил модифицировать п.2:
Теперь создаем итз_2 не вызывая тот же построитель, а делая итз_1.Копия()
В результате таблица разностей пуста.
Ничего не понимаю... Нерешительный
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТЗ.Разность и поиск по ключу.
Ответ #2 - 26. Августа 2010 :: 07:42
Печать  
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ИТЗ.Разность и поиск по ключу.
Ответ #3 - 26. Августа 2010 :: 07:48
Печать  
Проверил у себя
Твоя обработка на версии 2.0.3.3 первым способом
дает разница пустая таблица значений
далее обработка валится на
Цитата:
итз_1.ВыгрузитьСтроку(Ключ);
{D:\1CPP_TEST\ПРЯМОЕРЕДАКТИРОВАНИЕТП\_____________006.ERT(157)}: Поле агрегатного объекта не обнаружено (ВыгрузитьСтроку)


под 3.2.2.4 и первым и вторым способом разность непустые одинаковые таблицы
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТЗ.Разность и поиск по ключу.
Ответ #4 - 26. Августа 2010 :: 07:54
Печать  
Z1 писал(а) 26. Августа 2010 :: 07:48:
далее обработка валится на
Цитата:
итз_1.ВыгрузитьСтроку(Ключ);
{D:\1CPP_TEST\ПРЯМОЕРЕДАКТИРОВАНИЕТП\_____________006.ERT(157)}: Поле агрегатного объекта не обнаружено (ВыгрузитьСтроку)

поменяй эту строку на:
Код
Выбрать все
Для й=1 По итз_1.КоличествоКолонок() Цикл
			Ключ.ДобавитьЗначение(итз_1.ПолучитьЗначение(,й));
		КонецЦикла; 


  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ИТЗ.Разность и поиск по ключу.
Ответ #5 - 26. Августа 2010 :: 08:03
Печать  
JohnyDeath писал(а) 26. Августа 2010 :: 07:54:
Z1 писал(а) 26. Августа 2010 :: 07:48:
далее обработка валится на
Цитата:
итз_1.ВыгрузитьСтроку(Ключ);
{D:\1CPP_TEST\ПРЯМОЕРЕДАКТИРОВАНИЕТП\_____________006.ERT(157)}: Поле агрегатного объекта не обнаружено (ВыгрузитьСтроку)

поменяй эту строку на:
Код
Выбрать все
Для й=1 По итз_1.КоличествоКолонок() Цикл
			Ключ.ДобавитьЗначение(итз_1.ПолучитьЗначение(,й));
		КонецЦикла; 



после такой замена на 2.0.3.3 оба метода
дают разность пустая таблица
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТЗ.Разность и поиск по ключу.
Ответ #6 - 26. Августа 2010 :: 08:10
Печать  
Сейчас проверил на всех версиях 1С++, которые у меня были. Результат:
2, 0, 3, 4 - Правильно
2, 5, 0, 6 - НЕправильно
3, 0, 1, 12 - НЕправильно
3, 0, 1, 24 bf2 - НЕправильно
3, 2, 1, 0 - НЕправильно
3, 2, 2, 4 - НЕправильно

Правильно/неправильно - моё мнение (пока не докажут обратное Подмигивание )
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТЗ.Разность и поиск по ключу.
Ответ #7 - 26. Августа 2010 :: 08:22
Печать  
Зарегистрировал баг.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИТЗ.Разность и поиск по ключу.
Ответ #8 - 26. Августа 2010 :: 09:58
Печать  
JohnyDeath писал(а) 26. Августа 2010 :: 08:22:
Зарегистрировал баг.

Вот, Женя, ты мастер объекты типа "Метаданные" посравнивать.
А разве кто-то обещал, что объекты данного типа вообще поддерживаются ИТ?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ИТЗ.Разность и поиск по ключу.
Ответ #9 - 26. Августа 2010 :: 10:06
Печать  
Метаданные вообще нельзя сравнивать на равенство
В твоем примере - в цикле - данный код даст непустой результат
Код
Выбрать все
	ИмяРеквизита = ДокМета.РеквизитШапки(й);
	ИмяРеквизита1 = ДокМета.РеквизитШапки(й);
	Если ИмяРеквизита <>ИмяРеквизита1 Тогда
		Сообщить("Не равны " +ИмяРеквизита);
	КонецЕсли;
 



Объявляется конкурс: почему однотипные объекты метаданных различны с точки зрения 1С.
В чем смысл?
Я пока затрудняюсь с ответом.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТЗ.Разность и поиск по ключу.
Ответ #10 - 26. Августа 2010 :: 10:34
Печать  
kms писал(а) 26. Августа 2010 :: 09:58:
JohnyDeath писал(а) 26. Августа 2010 :: 08:22:
Зарегистрировал баг.

Вот, Женя, ты мастер объекты типа "Метаданные" посравнивать.
А разве кто-то обещал, что объекты данного типа вообще поддерживаются ИТ?

Смущённый облажался. Я ж хотел идентификатор вставлять, а не объект метаданных.
А я всё думал, почему на справочниках не воспроизводится ))
Баг аннулировал.

Правда непонятно почему в 1С++ версии 2.0.3 все сравнивается корректно.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: ИТЗ.Разность и поиск по ключу.
Ответ #11 - 26. Августа 2010 :: 10:36
Печать  
а почему разность определяется только по реквизимам шапки?
  
Наверх
wwwICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТЗ.Разность и поиск по ключу.
Ответ #12 - 26. Августа 2010 :: 10:43
Печать  
Кто сказал, что только по ним?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: ИТЗ.Разность и поиск по ключу.
Ответ #13 - 26. Августа 2010 :: 10:46
Печать  
запустил у себя твою обработку для документа реализация

в результате вылезли ВСЕ реквизиты шапки, общие реквизиты и многострочния часть одинаковая
  
Наверх
wwwICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ИТЗ.Разность и поиск по ключу.
Ответ #14 - 26. Августа 2010 :: 10:56
Печать  
Смотри ответ № 10. (я просто лоханулся, когда писал код. Именно в том месте, где обрабатывается шапка документа)
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать