Переключение на Главную Страницу Страницы: 1 ... 18 19 [20] 21 22 ... 79 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПоставщикДанных" - обсуждения, примеры, вопросы (число прочтений - 400436 )
Pavel.V
Junior Member
**
Отсутствует


I hate 1C!!!

Сообщений: 19
Местоположение: Belarus
Зарегистрирован: 09. Декабря 2009
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #285 - 09. Декабря 2009 :: 07:51
Печать  
Здравствуйте.
Имеется журнал, тип: обычный. В состав входят 2 документа (Возврат и АктПриема).

При выполнении:
Код
Выбрать все
ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
	ПоставщикДанных.ТипЗначений = "Журнал.Возврат"; 



Появляются ошибки, вот первая:
ПоставщикДанных.Журнал::УстановитьПоставщикаДанных() : Meta name parser: неизвестное метаимя или алиас "$ДокАктПриема"

Сейчас сам пока разбираюсь. С журналами где в составе один документ -- все тип-топ, но с 2 и более -- ошибки.
  
Наверх
GTalkICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #286 - 09. Декабря 2009 :: 08:10
Печать  
Pavel.V писал(а) 09. Декабря 2009 :: 07:51:
Сейчас сам пока разбираюсь. С журналами где в составе один документ -- все тип-топ, но с 2 и более -- ошибки.

Как вариант предлагаю поставить РежимОтладки = 1 и все что получиться когда ты его запустишь прикрепить в txt файле.

Пы.сы. у меня не только 2, но и 5 документов работают вполне нормально Улыбка
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Pavel.V
Junior Member
**
Отсутствует


I hate 1C!!!

Сообщений: 19
Местоположение: Belarus
Зарегистрирован: 09. Декабря 2009
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #287 - 09. Декабря 2009 :: 08:46
Печать  
Спасибо за быстрый ответ!
Скорее косяк в журнале.
ПоставщикДанных.Журнал::УстановитьПоставщикаДанных() : Meta name parser: неизвестное метаимя или алиас "$ДокАктПриема"
Не нравится ПоставщикуДанных ДокАктПриема.

Подключил аналогичный журнал с большим составом документов -- все работает.
  
Наверх
GTalkICQ  
IP записан
 
Noy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 07. Ноября 2009
Re: Класс "ПоставщикДанных"
Ответ #288 - 09. Декабря 2009 :: 09:23
Печать  
Pavel.V писал(а) 09. Декабря 2009 :: 08:46:
Спасибо за быстрый ответ!
Скорее косяк в журнале.
ПоставщикДанных.Журнал::УстановитьПоставщикаДанных() : Meta name parser: неизвестное метаимя или алиас "$ДокАктПриема"
Не нравится ПоставщикуДанных ДокАктПриема.

Подключил аналогичный журнал с большим составом документов -- все работает.


Скорее всего нет ни одной графы журнала, которая бы содержала ссылку на реквизит этого документа.
  
Наверх
 
IP записан
 
Pavel.V
Junior Member
**
Отсутствует


I hate 1C!!!

Сообщений: 19
Местоположение: Belarus
Зарегистрирован: 09. Декабря 2009
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #289 - 09. Декабря 2009 :: 09:46
Печать  
Цитата:
Скорее всего нет ни одной графы журнала, которая бы содержала ссылку на реквизит этого документа.


Все графы отбора определены. Создал аналогичный журнал, с теми же графами отбора. Блин -- все работает.   Злой
  
Наверх
GTalkICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #290 - 09. Декабря 2009 :: 10:12
Печать  
Pavel.V писал(а) 09. Декабря 2009 :: 09:46:
Все графы отбора определены. Создал аналогичный журнал, с теми же графами отбора. Блин -- все работает.   Злой

Подозрение в чем может быть причина у меня есть. Попробую подтвердить и исправить по мере возможности (до выходных).
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #291 - 13. Декабря 2009 :: 10:54
Печать  
Выложена новая версия:
3.03.005 от 12.12.09 г.
- Объект «ПоставщикДанных.ПрямойЗапрос» обновлен до версии 1.05.002 от 07.12.09 г.
- Исправлена ошибка при получении списка значений поставщика данных «СписокЗначений». Не правильно проставлялись пометки в списке.
- Исправлена ошибка при подготовке запроса объекта «ПоставщикДанных.Журнал» при условии что в него входят документ у которых идентификатор входит в идентификатор другого документа данного журнала. Например: Счет, СчетФактураВыданный.
- Исправлена ошибка при построении строки сортировки у объекта «ПоставщикДанных.Регистр»
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #292 - 16. Декабря 2009 :: 15:19
Печать  
Мысли про связку "Запрос"-"Результат"-"ТП". Всё-таки мне твоя схема не очень нравиться.
1) для поставщика ИндексированнаяТаблица и ТаблицаЗначений можно было сделать метод "АвтоСозданиеКолонок", чтоб не перебирать каждый раз все колонки ИТЗ для создания аналогичных в ТП
2) Ты почему-то делаешь
Код
Выбрать все
Данные.ИндексированнаяТаблица.Объединить(Источник) 

, хотя логичнее было бы так:
Код
Выбрать все
Данные.ИндексированнаяТаблица = Источник 

или так
Код
Выбрать все
Данные.УстановитьИТЗ(Источник) 


3) Если имеем "Данные.УстановитьИТЗ(Источник)", то там же можно автоматом делать и п.1 (авто создание колонок)
4) {поток мыслей} Можно сделать метод "ЗагрузитьИзЗапроса", куда передавать текст Прямого запроса. Этот метод выполняет запрос в ИТЗ и далее п.2.
представь, как может сократиться клиентский код. А задач, где надо отобразить данные, полученные запросом немеряно (по крайней мере у меня).

П.С. всё это только моё мнение. Мне даже кажется, что я тебе об этом уже говорил Подмигивание
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #293 - 16. Декабря 2009 :: 15:24
Печать  
JohnyDeath писал(а) 16. Декабря 2009 :: 14:22:
1) для поставщика ИндексированнаяТаблица и ТаблицаЗначений можно было сделать метод "АвтоСозданиеКолонок", чтоб не перебирать каждый раз все колонки ИТЗ для создания аналогичных в ТП

Хорошее предложение по поводу автосоздания колонок. Только вот АвтоСозданиеКолонок как признак мне не очень нравится.

А вот такой вариант:
JohnyDeath писал(а) 16. Декабря 2009 :: 14:22:
4) {поток мыслей} Можно сделать метод "ЗагрузитьИзЗапроса", куда передавать текст Прямого запроса. Этот метод выполняет запрос в ИТЗ и далее п.2.
представь, как может сократиться клиентский код. А задач, где надо отобразить данные, полученные запросом немеряно (по крайней мере у меня).

пне нравится даже больше. Более того я бы сказал что это очень заманчивый вариант. Поскольку открываются большие горизонты по перекладыванию пользовательского кода на классы. Например:
реализация параметра ПрямойЗапрос, в поставщике ИТЗ который может принимать объект ПрямойЗапрос, с которым работает программист. И соответственно создание таблицы по тому результату что дает данный класс. Типизацию колонок поставщика и их создание можно переложить на класс. Т.о. можно избавиться вообще от всех проблем разом, которые ты описал в том сообщении.
Например:
Код
Выбрать все
ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
ПоставщикДанных.ТипЗначений = "ИндексированнаяТаблица";
и т.д.
Данные = ПоставщикДанных.Данные;
ПрямойЗапрос = СоздатьОбъект("ПрямойЗапрос");
ПрямойЗапрос.Текст = "select * from Справочник.Контрагенты";
Данные.ПрямойЗапрос = ПрямойЗапрос;
Данные.ЗаполнитьИзЗапроса(); 


При этом если сам КОП найдет соответствие ИДКолонки - Типизация то он типизирует колонки, если нет, то их тип = Неопределенный.

Вот эта идея мне нравится. Подмигивание
Кстати если начало 10-го года будет реализация пользователи 1С 7.7 еще останутся?  Подмигивание

Пы.сы. ПрямойЗапрос как атрибут можно не реализовывать, а сделать просто его параметром метода. Причем параметром можно сделать как объект Запрос (1С) так и ПрямойЗапрос (КОП).
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #294 - 16. Декабря 2009 :: 15:29
Печать  
vandalsvq писал(а) 16. Декабря 2009 :: 15:24:
...Поскольку открываются большие горизонты по перекладыванию пользовательского кода на классы. Например:
реализация параметра ПрямойЗапрос, в поставщике ИТЗ который может принимать объект ПрямойЗапрос, с которым работает программист.

Я к этому и подводил. Только мои мысли пошли немного дальше.
В пользовательском коде вообще не хочу создавать класс ПрямойЗапрос. Делаю
Код
Выбрать все
ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
ПоставщикДанных.ТипЗначений = "ИндексированнаяТаблица";
и т.д.
Данные = ПоставщикДанных.Данные;
//Если надо, то какой-нибудь Данные.УстановитьТекстовыйПараметр("Параметр",Параметр);
Данные.ЗаполнитьИзЗапроса(ТекстЗапроса);
 


только тут возникает маленькая проблема - зависимость класса "ПоставщикДанных" от класса "ПрямойЗапрос"

Про типизацию немного не понял. Какие там могут быть проблемы, если всё типизировано в тексте запроса?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #295 - 16. Декабря 2009 :: 15:32
Печать  
vandalsvq писал(а) 16. Декабря 2009 :: 15:24:
Кстати если начало 10-го года будет реализация пользователи 1С 7.7 еще останутся?  Подмигивание

Перечитал несколько раз. Не дошло.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #296 - 16. Декабря 2009 :: 15:37
Печать  
vandalsvq писал(а) 16. Декабря 2009 :: 15:24:
Пы.сы. ПрямойЗапрос как атрибут можно не реализовывать, а сделать просто его параметром метода. Причем параметром можно сделать как объект Запрос (1С) так и ПрямойЗапрос (КОП).

А лучше вообще этот параметр сделать строковым и передавать именно строку вида "Запрос1С", "ODBCRecordSet", "Запрос1sqlite", "ПрямойЗапрос" (как-то так).
Тогда решается:
Цитата:
только тут возникает маленькая проблема - зависимость класса "ПоставщикДанных" от класса "ПрямойЗапрос"
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #297 - 16. Декабря 2009 :: 15:47
Печать  
JohnyDeath писал(а) 16. Декабря 2009 :: 15:29:
только тут возникает маленькая проблема - зависимость класса "ПоставщикДанных" от класса "ПрямойЗапрос"

Про типизацию немного не понял. Какие там могут быть проблемы, если всё типизировано в тексте запроса?

1. Я буду 3-мя руками и 5-ю ногами против зависимости поставщика от прямого запроса Улыбка. Модульность должна быть. Избежать на 100% этого не получиться. Но как я писал, если сделать объект-источник - параметром метода, то зависимость уменьшается в разы. А при желании можно допилить до получения объекта ODBC, 1sqlite, Запрос и ПрямойЗапрос.
2. Про проблемы с типизацией - это я про параметры метода НоваяКолонка, там ведь есть ТипВид, Длина, Точность, и эти параметры отвечают за редактирование табличного поля. И про проблему типизации, я говорил именно эту. А не типизацию результата запроса Улыбка
3. А про 10-й год, в смысле на дворе НГ. Вот в каникулы и намечен релиз %). Если все сложится... держим пальцы крестиком Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #298 - 16. Декабря 2009 :: 15:48
Печать  
Мы с тобой говорим почти об одном и том же Подмигивание.
Только мне видится передача не текстов запросов, и видов этих объектов, а самих объектов. Чтобы КОП забирал результат, выводил его и работал с ним как с "собственноручно созданным". Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #299 - 16. Декабря 2009 :: 15:56
Печать  
В твоем случае пользовательского кода на 2 строчки больше  Смех
Но твой вариант более универсальный и не надо нести большую ответственность в твоем классе за разные типы ПрямыхЗапросов (да и потяжелее это будет)
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 18 19 [20] 21 22 ... 79
ОтправитьПечать