Переключение на Главную Страницу Страницы: 1 ... 3 4 [5] 6 7 ... 9 ОтправитьПечать
Очень популярная тема (более 25 ответов) Коллекции в 1С++ (число прочтений - 51358 )
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Коллекции в 1С++
Ответ #60 - 14. Июля 2008 :: 10:58
Печать  
Дока на Вектор внесена в репозитарий icpp.
Вот только соберется, похоже, только, когда Федор поправит сборку Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Коллекции в 1С++
Ответ #61 - 15. Июля 2008 :: 03:46
Печать  
Добавил к ВыгрузитьСтроку фичу выгрузки в ТаблицаЗначений.

Т.е. теперь ВыгрузитьСтроку понимает как Вектор, так и СписокЗначений с ТаблицаЗначений.

ЗЫ реализовал универсальный класс CVTResultLoader, служающий для выгрузки данных в ТаблицаЗначений, на базе универсального интерфейса IGeneralResultLoader

ЗЗЫ Логика ВыгрузитьСтроку подтверждена многочисленными юнит-тестами.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Коллекции в 1С++
Ответ #62 - 15. Июля 2008 :: 08:09
Печать  
Да, теперь весьма универсально получилось.
Может быть, только не CValue2ResultLoader(vDest), а CBLContext2ResultLoader() сделать.
И совсем хорошо бы реализовать схему автоудаления через Release() для VL/VT ResultLoader.
  

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


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Коллекции в 1С++
Ответ #63 - 15. Июля 2008 :: 08:26
Печать  
kms писал(а) 15. Июля 2008 :: 08:09:
Может быть, только не CValue2ResultLoader(vDest), а CBLContext2ResultLoader() сделать.

Ага, сам уже над этим раздумывал.

kms писал(а) 15. Июля 2008 :: 08:09:
И совсем хорошо бы реализовать схему автоудаления через Release() для VL/VT ResultLoader.

Расскажи, подробнее, как сделать? желательно с кодом.

ЗЫ у меня вообще уже готова и протестирована выгрузка из ИТЗ через универсальный интерфейс для ТЗ, СЗ и коллекций.
Нарисовал еще кучу тестов для ИТЗ::Выгрузить, все проходят Улыбка
Сейчас буду заливать.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Коллекции в 1С++
Ответ #64 - 15. Июля 2008 :: 08:29
Печать  
artbear писал(а) 15. Июля 2008 :: 08:26:
ЗЫ у меня вообще уже готова и протестирована выгрузка из ИТЗ через универсальный интерфейс для ТЗ, СЗ и коллекций.
Нарисовал еще кучу тестов для ИТЗ::Выгрузить, все проходят Улыбка

Один неясный момент для коллекций остался.

Для СЗ можно выгрузить только одну колонку, если передано несколько колонок, выбрасывается исключение. В универсальной выгрузке ИТЗ::Выгрузить(СЗ) я сохранил подобное поведение.

Но для коллекций подобное обеспечить не удается, т.к. они в принципе могут принимать и две колонки, поэтому сделал просто - в коллекции будет выгружаться только первая колонка из перечисленных, остальные выгружаться не будут. При этом никакой ошибки не возникнет, т.е. это для коллекций штатная ситуация.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Коллекции в 1С++
Ответ #65 - 15. Июля 2008 :: 08:41
Печать  
Завел новую тему об универсальных интерфейсах загрузки/выгрузки
http://www.1cpp.ru/forum/YaBB.pl?num=1216110955/0#0
Прошу обсуждать их там, а не в этой ветке.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Коллекции в 1С++
Ответ #66 - 15. Июля 2008 :: 16:22
Печать  
artbear писал(а) 15. Июля 2008 :: 08:26:
kms писал(а) 15. Июля 2008 :: 08:09:
И совсем хорошо бы реализовать схему автоудаления через Release() для VL/VT ResultLoader.

Расскажи, подробнее, как сделать? желательно с кодом.

Ну, как любой COM - объект, или как автоудаляемый CBLContext, например.
В классе - реализующем интерфейс делаешь "счетчик ссылок", который увеличивается на 1 в AddRef() и уменьшается на 1 в Release().
По достижению 0 - объект уничтожается.
  

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Коллекции в 1С++
Ответ #67 - 15. Июля 2008 :: 16:23
Печать  
artbear писал(а) 15. Июля 2008 :: 08:29:
Для СЗ можно выгрузить только одну колонку, если передано несколько колонок, выбрасывается исключение. В универсальной выгрузке ИТЗ::Выгрузить(СЗ) я сохранил подобное поведение.

Но для коллекций подобное обеспечить не удается, т.к. они в принципе могут принимать и две колонки, поэтому сделал просто - в коллекции будет выгружаться только первая колонка из перечисленных, остальные выгружаться не будут. При этом никакой ошибки не возникнет, т.е. это для коллекций штатная ситуация.

Да, думаю, это нормально.
Единственно, если еще не сделал - неплохо бы, чтобы при выгрузке 2х колонок вторая колонка попадала в представление.
  

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


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Коллекции в 1С++
Ответ #68 - 16. Июля 2008 :: 03:12
Печать  
kms писал(а) 15. Июля 2008 :: 16:23:
Единственно, если еще не сделал - неплохо бы, чтобы при выгрузке 2х колонок вторая колонка попадала в представление.

Для СЗ сделал, конечно, + тесты.
Для коллекций пока нет, т.к. не понимаю, как для них указать представление Улыбка
Или этого пока просто нету ? Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Коллекции в 1С++
Ответ #69 - 16. Июля 2008 :: 03:14
Печать  
kms писал(а) 15. Июля 2008 :: 16:22:
artbear писал(а) 15. Июля 2008 :: 08:26:
kms писал(а) 15. Июля 2008 :: 08:09:
И совсем хорошо бы реализовать схему автоудаления через Release() для VL/VT ResultLoader.

Расскажи, подробнее, как сделать? желательно с кодом.

Ну, как любой COM - объект, или как автоудаляемый CBLContext, например.
В классе - реализующем интерфейс делаешь "счетчик ссылок", который увеличивается на 1 в AddRef() и уменьшается на 1 в Release().
По достижению 0 - объект уничтожается.

Да, это понятно.
В какой момент вызывать Release при выгрузке в этот приемник? после окончания выгрузки, т.е. после ldrDone ?

ЗЫ а вообще внутри 1С++ пока обошелся просто shared_ptr Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Коллекции в 1С++
Ответ #70 - 16. Июля 2008 :: 05:22
Печать  
kms писал(а) 15. Июля 2008 :: 16:23:
... при выгрузке 2х колонок вторая колонка попадала в представление.
а 3х - третья в пометку
  

1&&2&&3
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Коллекции в 1С++
Ответ #71 - 23. Июля 2008 :: 05:23
Печать  
artbear писал(а) 10. Июля 2008 :: 12:25:
Реализован метод ИТЗ::ВыгрузитьСтроку(чНомерСтроки = 0, Приемник, [Колонки = ""]) в 3.0
http://www.1cpp.ru/bugs/show_bug.cgi?id=3978

В наличии тесты + дока

PS пока только для класса Вектор или его наследников, ну или для любых коллекций, которые доступны из 1С.


В документации ошибка:

Цитата:
ВыгрузитьСтроку / Unload

Синтаксис: ВыгрузитьСтроку(Приемник, [чНомерСтроки = 0], [Колонки = ""], [чПоложениеИменКолонок = 0])


Или вы ещё с интерфейсом не определились?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Коллекции в 1С++
Ответ #72 - 23. Июля 2008 :: 05:25
Печать  
Нет, как в документации все верно Улыбка
Мы слегка исправили интерфейс для совпадения с аналогичными методами, где первым всегда стоит Приемник.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Коллекции в 1С++
Ответ #73 - 23. Июля 2008 :: 05:30
Печать  
artbear писал(а) 23. Июля 2008 :: 05:25:
Нет, как в документации все верно Улыбка
Мы слегка исправили интерфейс для совпадения с аналогичными методами, где первым всегда стоит Приемник.


Ну тогда ещё реализацию исправьте  Смех. А то неработает.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Коллекции в 1С++
Ответ #74 - 23. Июля 2008 :: 05:45
Печать  
Nick писал(а) 23. Июля 2008 :: 05:30:
artbear писал(а) 23. Июля 2008 :: 05:25:
Нет, как в документации все верно Улыбка
Мы слегка исправили интерфейс для совпадения с аналогичными методами, где первым всегда стоит Приемник.


Ну тогда ещё реализацию исправьте  Смех. А то неработает.

И верно Улыбка
Я доку поправил, а в коде и тестах как было, так и осталось Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 3 4 [5] 6 7 ... 9
ОтправитьПечать