Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПоставщикДанных" - обсуждения. Часть 2. (число прочтений - 363846 )
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Класс "ПоставщикДанных" - обсуждения. Часть 2.
26. Сентября 2010 :: 17:06
Печать  
Данная тема предназначеня для обсуждения, примеров, вопросов и т.д. по классу "ПоставщикДанных".

Релизы, новости, обновления в отдельной ветке.

Описание разработки:
Класс реализует и полностью управляет данными отображаемыми в табличном поле. При этом он управляет всеми объектами завязанными в реализации. Данными для табличного поля могут выступать: Справочник, Документы, Журнал, Регистр, Операции, ТабличнаяЧасть, ИндексированнаяТаблица, СписокЗначений.

Взаимоотношения внутри класса:
1. Объект "ПоставщикДанных". Главный объект с которого происходит инициализация разработки. Он управляет созданием табличного поля и объекта-расширения табличного поля.
2. Объект-расширение табличного поля. Объект управляющий данными отображенными в табличном поле. В задачи объекта входит: формирование источников данных, управление редактированием, поиском, первичная настройка отбора.
3. Табличное поле. Объект управляющий элементом управления отображающим данные на форме. Табличное поле поставщика данных имеет расширенную объектую модель относительно стандартного табличного поля 1С++.
4. Командная панель. Объект привязанный к табличному полю и реализующий панель кнопок для управления табличным полем. Командная панель заполняется объектом-расширением поставщика данных.

Объекты-расширения делятся на два вида: формируемые из данных БД, и формируемые из данных оперативной памяти. Справочник, Документ, Журнал, Регистр, Операции, Проводки - данные для этих расширений считываются динамически прямыми запросами к базе данных 1С. Для них доступны отборы, возможность изменения запросов. Также для данных объектов контролируются наборы прав пользователей.
ТабличнаяЧасть, ИндексированнаяТаблица, СписокЗначений - данные для этих расширений хранятся в оперативной памяти.

К классам приложена документация, написана она процентов на 60-70% (но уже более 150 страниц).

Текущая официальная версия: 4.3.1 от 12.03.12 г.

Версии внешних компонент рекомендованные к использованию:
Требования:
1С++ последняя Улыбка
1sqlite. Версия 1.0.2.3 и выше
FormEx
Yoksel



Часть 1: - тут

Поскольку иногда ветки имеют свойство ломаться, настоятельно рекомендую обсуждение продолжать вести в этой теме. Все вопросы оставшиеся при переходе прошу продублировать сюда.
« Последняя редакция: 13. Марта 2012 :: 16:24 - vandalsvq »  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #1 - 27. Сентября 2010 :: 13:55
Печать  
artbear писал(а) 26. Сентября 2010 :: 08:04:
spock писал(а) 25. Сентября 2010 :: 16:18:
Прошелся Олей, наткнулся на блок перехватов, в том числе DecrRef... Я так понимаю, в нынешнем виде компоненты следить за счетчиком не надо? Тогда достаточно убрать в файле PicService.cpp в методе CPicService::GetRenderedPicture строчку ppPicture[0]->AddRef();
Ну и сессно досадный ML в конструкторе CPicService.

1. Зарегистрирован баг http://www.1cpp.ru/bugs/show_bug.cgi?id=4504
2. Исправление подтверждаю, утечка на тестовом примере исчезла.
3. Исправление внесено в репозитарий icpp

Выложил версию icpp 3.2.2.7 с исправлением

Заново собрал 3.2.2.7
Упомянутых ошибок нету.
Прошу проверить

ЗЫ перенес архив со сборкой в основную ветку
http://www.1cpp.ru/forum/YaBB.pl?num=1281717242/65#65
« Последняя редакция: 28. Сентября 2010 :: 12:26 - artbear »  

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


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #2 - 28. Сентября 2010 :: 07:23
Печать  
artbear писал(а) 27. Сентября 2010 :: 13:55:
Заново собрал 3.2.2.7
Упомянутых ошибок нету.
Прошу проверить
ЗЫ это новый вариант 3.2.2.7, прошу закачать заново!

Проверил. На тестовом примере объекты GDI все-равно "растут", правда медленее чем в раньше, то есть чтобы система упала, раньше нужно было открытьзакрыть тестоую форму 3-4 раза, то сейчас раз 50.
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #3 - 28. Сентября 2010 :: 10:25
Печать  
zk96 писал(а) 28. Сентября 2010 :: 07:23:
artbear писал(а) 27. Сентября 2010 :: 13:55:
Заново собрал 3.2.2.7
Упомянутых ошибок нету.
Прошу проверить
ЗЫ это новый вариант 3.2.2.7, прошу закачать заново!

Проверил. На тестовом примере объекты GDI все-равно "растут", правда медленее чем в раньше, то есть чтобы система упала, раньше нужно было открытьзакрыть тестоую форму 3-4 раза, то сейчас раз 50.

Кстати, а что за форма такая "тестовая"? Я открываю просто форму документа. У меня GDI при этом пухнут, но не дохнут. Или может у меня терпения не хватило 50 раз открыть Улыбка
  
Наверх
ICQ  
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #4 - 28. Сентября 2010 :: 10:55
Печать  
avgreen писал(а) 28. Сентября 2010 :: 10:25:
Кстати, а что за форма такая "тестовая"? Я открываю просто форму документа. У меня GDI при этом пухнут, но не дохнут. Или может у меня терпения не хватило 50 раз открыть Улыбка

Тестовая вот http://www.1cpp.ru/forum/YaBB.pl?num=1248941896/1155#1168
А так, у Вас не хватило терпения. Улыбка
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #5 - 28. Сентября 2010 :: 12:27
Печать  
Выложил версию icpp 3.2.2.7 с исправлением из предыдущего поста в основной ветке
http://www.1cpp.ru/forum/YaBB.pl?num=1281717242/65#65
  

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



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #6 - 28. Сентября 2010 :: 15:02
Печать  
я не понял, не починили чтоли?
  
Наверх
ICQ  
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #7 - 28. Сентября 2010 :: 15:22
Печать  
spock писал(а) 28. Сентября 2010 :: 15:02:
я не понял, не починили чтоли?

Пока чинят.
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #8 - 29. Сентября 2010 :: 04:01
Печать  
spock писал(а) 28. Сентября 2010 :: 15:02:
я не понял, не починили чтоли?

Починил по твоему рецепту.
но некоторые проблемы все равно остались.
  

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



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #9 - 29. Сентября 2010 :: 12:49
Печать  
artbear писал(а) 29. Сентября 2010 :: 04:01:
но некоторые проблемы все равно остались.

какие?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #10 - 29. Сентября 2010 :: 13:02
Печать  
spock писал(а) 29. Сентября 2010 :: 12:49:
artbear писал(а) 29. Сентября 2010 :: 04:01:
но некоторые проблемы все равно остались.

какие?

http://www.1cpp.ru/forum/YaBB.pl?num=1281717242/61#61
  

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



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #11 - 29. Сентября 2010 :: 14:28
Печать  
а из-за чего течет? Улыбка
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #12 - 29. Сентября 2010 :: 15:36
Печать  
а что за ку.ня в виде я().XXX , которая не проходит синтаксис-контроль? чувствую, что боян, но всеже
« Последняя редакция: 29. Сентября 2010 :: 16:54 - spock »  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #13 - 29. Сентября 2010 :: 16:13
Печать  
Вот на этом упрощенном примере видно, что при открытии кушается пара тысяч GDI, после закрытия все вертается взад
  

_________________IPicture_001.rar ( 4 KB | Загрузки )
Наверх
ICQ  
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #14 - 07. Октября 2010 :: 12:22
Печать  
С помощью это класса у меня организован журнал документов с фильтром по списку контрагентов (для менеджеров).

Со временем было отмечено, что в пиковые часы нагрузок на sql сервер у менеджеров стал подтормаживать вод текстовых данных (например в справочниках). Я связываю это с слишком частым опросом данных - ПериодАвтоОбновления =10. Примерно каждые 10 сек комп какбы замирает на 1-2 сек 

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

Хочу сделать , чтобы журнал обновлялся после записи документа, но в мануале нужного мне события не нашел.

пробовал по событию ПередПроведением, но что-то не обновляет

Код
Выбрать все
Процедура ТабличноеПолеМногострочнойЧастиПередПроведением(ТабличноеПоле,ФСО)
	ТабличноеПоле.ОбновитьСтрокиТабличногоПоля();
КонецПроцедуры
 



как сделать , обновление при записи документа?
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #15 - 07. Октября 2010 :: 12:45
Печать  

Код
Выбрать все
Процедура ТабличноеПолеМногострочнойЧастиПередПроведением(ТабличноеПоле,ФСО)
	//ТабличноеПоле.ОбновитьСтрокиТабличногоПоля();
	ПоставщикДанных.Обновить();
КонецПроцедуры
 



проверил в отладчике -  это событие не отрабатывает (в него не заходит)
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #16 - 11. Октября 2010 :: 05:17
Печать  
Прошу ответить разработчика. Нужна помощь
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #17 - 11. Октября 2010 :: 08:08
Печать  
В общем я счас решил пока так:
1. Переменная глобального модуля: МенеджерСобытийПриЗаписиДокумента. Объект "МенеджерСобытий" из 1С++.
2. Все документы в процедуре "ПриЗаписи" посылают события через него.
3. Все журналы подписываются в данном менеджере, проверяют свои виды на вхождение и соответственно вызываются обновления табличного поля. (ОбновитьСтроки). "ПриЗакрытии" подписчик удаляется.
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #18 - 11. Октября 2010 :: 09:27
Печать  
В общем все глобальные изменения в поставщике данных окончены. Сейчас все изменения будут задокументированы, также будет добавлена документация по новым объектам. Начинается период тестирования и переноса на мою боевую базу, после чего выложу обновление вполне официально.
В общем не буду загадывать, но планирую 3.7.1 выложить на этой неделе.
  

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #19 - 11. Октября 2010 :: 09:32
Печать  
vandalsvq писал(а) 11. Октября 2010 :: 08:08:
В общем я счас решил пока так:
1. Переменная глобального модуля: МенеджерСобытийПриЗаписиДокумента. Объект "МенеджерСобытий" из 1С++.
2. Все документы в процедуре "ПриЗаписи" посылают события через него.
3. Все журналы подписываются в данном менеджере, проверяют свои виды на вхождение и соответственно вызываются обновления табличного поля. (ОбновитьСтроки). "ПриЗакрытии" подписчик удаляется.



Если можно подробнее

п.1 Добавил в глобальный модуль переменную МенеджерСобытийПриЗаписиДокумента

п.2. В ПриЗаписи() нужного документа

МенеджерСобытийПриЗаписиДокумента =1

п.3 ???
здесь подробнее , сходу не понял
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #20 - 11. Октября 2010 :: 09:55
Печать  
В глобальном модуле:

Код
Выбрать все
Перем МенеджерСобытийПриЗаписи Экспорт;

Процедура ПриНачалеРаботыСистемы()
    /// после загрузки компонент
    МенеджерСобытийПриЗаписи = СоздатьОбъект("МенеджерСобытий");
КонецПроцедуры 



В документе:
Код
Выбрать все
Процедура ПриЗаписи()
    ФСО = 1;
    МенеджерСобытийПриЗаписи.ПослатьСобытие(Вид(),ФСО);
    Если ФСО = 0 Тогда
	  СтатусВозврата(0);
	  Возврат;
    КонецЕсли;
КонецПроцедуры 



В обработке где находится журнал документов (поставщик данных Журнал или Документ)

Код
Выбрать все
Процедура ПриОткрытии()
   иЗаписиДокумента");
КонецПроцедуры

Функция ИдентификаторТППриЗаписиДокумента(ВидДокумента,ФСО)
    Если ПустоеЗначение(ПоставщикДанных) = 1 Тогда
	  Возврат;
    КонецЕсли;
    Если СписокВидовДокументов.НайтиЗначение(ВидДокумента) = 0 Тогда
	  Возврат;
    КонецЕсли;
    ПоставщикДанных.ТабличноеПоле.ОбновитьСтроки();
КонецФункции 



Проверь названия методов у объекта "МенеджерСобытий" в соответствии с документацией. Вдруг напутал.
  

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #21 - 11. Октября 2010 :: 10:02
Печать  
Перем МенеджерСобытийПриЗаписи;

эта переменная не экспортная?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #22 - 11. Октября 2010 :: 10:08
Печать  
dimm73 писал(а) 11. Октября 2010 :: 10:02:
Перем МенеджерСобытийПриЗаписи;

эта переменная не экспортная?

Экспортная, исправился. Писал на память не копируя из конфы Улыбка.
  

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #23 - 11. Октября 2010 :: 10:13
Печать  
СписокВидовДокументов - не определена, выдает ошибку
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #24 - 11. Октября 2010 :: 10:22
Печать  
Ну конечно, это переменная которая хранит список идентификаторов видов документов, я ее сам создавал Улыбка. Так что либо удали (но тогда будет срабатывать на все доки кто вызвал, независимо от журнала), либо создай и заполни сам по метаданным
  

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #25 - 11. Октября 2010 :: 10:24
Печать  
Еще вопрос:

зачем в документе в ПриЗаписи код
Код
Выбрать все
	Если ФСО = 0 Тогда
		СтатусВозврата(0);
		Возврат;
	КонецЕсли;
 



Ведь документ в любом случае должен быть проведен ?
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #26 - 11. Октября 2010 :: 10:31
Печать  
Класссс !!!!!

Спасибо большое  Очень довольный



В предыдущем посте вопрос еще актуален
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #27 - 11. Октября 2010 :: 13:01
Печать  
У меня в подписчике не только обработка обновлений, но и проверка разных реквизитов и т.п. Улыбка
  

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



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #28 - 12. Октября 2010 :: 05:48
Печать  
Подскажите пожалуйста как реализован вывод изображения корня дерева в ДеревоЗначений. А еще лучше ткните в коде где это, а то что то не могу найти. Спасибо.
  
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #29 - 12. Октября 2010 :: 07:50
Печать  
Реализовано при помощи СистемнойКартинки. Код смотреть надо в ПоставщикДанных.ДеревоЗначений в событие ПриВыводеСтроки
  

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


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #30 - 16. Октября 2010 :: 13:47
Печать  
Использую для обработки класс поставщикданных, вывожу форму списка справочника, возможно табличную часть сформировать так как мне надо, в каком методе это делать ?
« Последняя редакция: 17. Октября 2010 :: 17:08 - HeiHeShang »  
Наверх
 
IP записан
 
Botanik8888
Junior Member
**
Отсутствует


I Love 1C++

Сообщений: 37
Местоположение: РБ Минск
Зарегистрирован: 13. Декабря 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #31 - 18. Октября 2010 :: 08:19
Печать  
HeiHeShang писал(а) 16. Октября 2010 :: 13:47:
Использую для обработки класс поставщикданных, вывожу форму списка справочника, возможно табличную часть сформировать так как мне надо, в каком методе это делать ?

а как вы хотите это сделать? чего в документации не хватает для реализации задуманного?
  

И разобьются ваши мечты о чугунную задницу реальности
Наверх
ICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #32 - 18. Октября 2010 :: 11:21
Печать  
Например мне надо некоторые ячейки объеденить, а данные брать не из справочника,а из склеивать из нескольких таблиц и проще это было бы сделать объеденив индексированные таблицы чем делать это одним запросом.
  
Наверх
 
IP записан
 
Botanik8888
Junior Member
**
Отсутствует


I Love 1C++

Сообщений: 37
Местоположение: РБ Минск
Зарегистрирован: 13. Декабря 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #33 - 20. Октября 2010 :: 07:48
Печать  
Ну так есть в документации все необходимое для реализации задуманного.
можно свести в индексированную таблицу и использовать в качестве поставщика ее.
можно присоединять таблицы при определении поставщика
можно видоизменять сгенерированный запрос при получении
можно переопределять содержимое ячеек при выводе.
вариант реализации зависит от того как хранятся требуемые данные и что при этом вы хотите получить.
  

И разобьются ваши мечты о чугунную задницу реальности
Наверх
ICQ  
IP записан
 
byte.mdfab
Junior Member
**
Отсутствует


1С++ рулит

Сообщений: 35
Местоположение: Украина
Зарегистрирован: 31. Марта 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #34 - 21. Октября 2010 :: 09:06
Печать  
Спасибо большое автору за этот проект. Очень мощная вещь.
Но у меня возникла хотелка - групповые действия над объектами, т.е. если в табличном поле включить множественный выбор, то при выборе команды, например  "Установить пометку удаления" устанавливать пометку всем выбранным объектам

Еще в догонку - почему для проведенных документов в контекстном меню нет пункта Провести?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #35 - 21. Октября 2010 :: 10:20
Печать  
Групповые действия можно конечно подумать и сделать. Но не скоро. Времени не хватает ни на что.
Что касается контекстного меню, можно поменять. Но есть идея поменять принцип контекстного меню, думаю пока.
  

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



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Неопределенный тип данных
Ответ #36 - 01. Ноября 2010 :: 08:33
Печать  
Вроде проскакивало что-то на эту тему но не нашел. Как редактировать реквизит имеющий тип значения "Неопределенный" в "ПоставщикДанных.ТабличнаяЧасть"?
  
Наверх
ICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #37 - 01. Ноября 2010 :: 14:06
Печать  
Не могу найти где происходит формирование окончательного запроса. Та процедура где ставится top и колонки запроса образаются в поставщике справочника ?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #38 - 01. Ноября 2010 :: 20:24
Печать  
Это происходит в ODBCDataProvider или SQLiteDataProvider, т.е. конкретном объекте внешней компоненты отвечающей за порционное чтение данных.
  

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


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #39 - 02. Ноября 2010 :: 12:16
Печать  
vandalsvq писал(а) 01. Ноября 2010 :: 20:24:
Это происходит в ODBCDataProvider или SQLiteDataProvider, т.е. конкретном объекте внешней компоненты отвечающей за порционное чтение данных.

Это top добавляется, а где колонки удаляются лишнии, то же в провайдере ? У меня непонятная ситуация, одно поле на форме выводит, а в запросе отправляемом на сервер провайдером его нет, и данные берутся из предпоследнего поля.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #40 - 02. Ноября 2010 :: 13:37
Печать  
Неиспользуемые колонки удаляются  так
  
Наверх
wwwICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #41 - 02. Ноября 2010 :: 13:51
Печать  
Anatol писал(а) 02. Ноября 2010 :: 13:37:
Неиспользуемые колонки удаляются  так

Все бы хорошо, но поле то используется, на форме я вижу эту колонку.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #42 - 02. Ноября 2010 :: 13:53
Печать  
а оно пустое?
как поле называется?

хотя нет... добавь в конец запроса пустое поле...
  
Наверх
wwwICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #43 - 02. Ноября 2010 :: 14:25
Печать  
Не помогает пустое поле.
А как мне этим в классе поставщик данных воспользоваться АвтоУдаление / AutoDelete ?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #44 - 02. Ноября 2010 :: 14:33
Печать  
Воспользуйся методом УстановитьПоляЗапроса
  
Наверх
wwwICQ  
IP записан
 
nicesc
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Зарегистрирован: 13. Июня 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #45 - 03. Ноября 2010 :: 05:43
Печать  
Добрый день!

Изучая данный класс споткнулся на такой задаче, у меня используется в качестве поставщика справочник, всё было хорошо, пока мне не понадобилось добавить колонку с редактируемыми данными, если добавить колонки к объекту ТП, столбцы ес-но появляются, но сохранить/прочитать значение из такой колонки нет возможности, так как поставщик про неё ничего не знает. Хотел добавить колонку через запрос, не не знаю как можно прикрутить числовое значение через JOIN. Сделал через индексированную таблицу, но эффект не тот, хотелось бы через справочник, подскажите возможно ли такое?

автору большое спасибо за класс!
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #46 - 03. Ноября 2010 :: 06:09
Печать  
Так что-ли?
SELECT $Спр.Товар [Товар $Справочник.Номенклатура], 0 [РедактируемыйРеквизит $Число] FROM ...
Только зачем.
По моему, тебе проще создать ТЗ с колонками УИД и Реквизит, в которой и будешь хранить свои данные. Далее, в событии ПриВыводеСтроки в добавленной тобой колонке ищешь данные в этой ТЗ по ключевому полю и выводишь соответствующее значение реквизита. И т.д.
Можно и через временную таблицу, только после редактирования надо записать данные в нее INSERT-ом
  
Наверх
ICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #47 - 03. Ноября 2010 :: 06:26
Печать  
Anatol писал(а) 02. Ноября 2010 :: 14:33:
Воспользуйся методом УстановитьПоляЗапроса

Не нашел в доках такого метода - это чей метод ?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #48 - 03. Ноября 2010 :: 06:48
Печать  
HeiHeShang писал(а) 03. Ноября 2010 :: 06:26:
Anatol писал(а) 02. Ноября 2010 :: 14:33:
Воспользуйся методом УстановитьПоляЗапроса

Не нашел в доках такого метода - это чей метод ?


Цитата:
3.06.003 от 27.06.10 г.
•      Для объектов расширений табличного поля «ПоставщикДанных.Журнал», «ПоставщикДанных.Проводки»  «ПоставщикДанных.Документы», «ПоставщикДанных.Справочник», «ПоставщикДанных.Операции» и «ПоставщикДанных.Регистр» добавлены новые методы «ПостоянныеПоляЗапроса», «УстановитьПоляЗапроса».

  
Наверх
wwwICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #49 - 03. Ноября 2010 :: 10:22
Печать  
Anatol писал(а) 03. Ноября 2010 :: 06:48:
HeiHeShang писал(а) 03. Ноября 2010 :: 06:26:
Anatol писал(а) 02. Ноября 2010 :: 14:33:
Воспользуйся методом УстановитьПоляЗапроса

Не нашел в доках такого метода - это чей метод ?


Цитата:
3.06.003 от 27.06.10 г.
•      Для объектов расширений табличного поля «ПоставщикДанных.Журнал», «ПоставщикДанных.Проводки»  «ПоставщикДанных.Документы», «ПоставщикДанных.Справочник», «ПоставщикДанных.Операции» и «ПоставщикДанных.Регистр» добавлены новые методы «ПостоянныеПоляЗапроса», «УстановитьПоляЗапроса».


У меня примерно такое выдает
Код
Выбрать все
ПоставщикДанныхМногострочнаяЧасть.УстановитьПоляЗапроса(СП);
{F:\TEST\EXTFORMS\ПОДБОРПРИХОД.ERT(150)}: Поле агрегатного объекта не обнаружено (УстановитьПоляЗапроса)
ПоставщикДанных.ТабличноеПоле::СохранитьПозициюКолонок() : Поле агрегатного объекта не обнаружено
ИТЗ.Положение = Колонка.Положение;
{F:\test\ExtForms\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(581) }

ПоставщикДанных.ТабличноеПоле::ПриУничтожении() : ПоставщикДанных.ТабличноеПоле::СохранитьПозициюКолонок() : Поле агрегатного объекта не обнаружено
ИТЗ.Положение = Колонка.Положение;
{F:\test\ExtForms\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(581) }

я().СохранитьПозициюКолонок();
{F:\test\ExtForms\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(407) }

ПоставщикДанных.ТабличноеПоле::ПриУничтожении() : ПоставщикДанных.ТабличноеПоле::СохранитьПозициюКолонок() : Поле агрегатного объекта не обнаружено
ИТЗ.Положение = Колонка.Положение;
{F:\test\ExtForms\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(581) }

я().СохранитьПозициюКолонок();
{F:\test\ExtForms\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(407) }
 

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #50 - 03. Ноября 2010 :: 11:28
Печать  
как я понимаю у тебя используется поставщикДанных.ТабличнаяЧасть ?
для нее таких методов не предусмотрено.

версия класса и версия 1cpp ?

зы оно?
  
Наверх
wwwICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #51 - 03. Ноября 2010 :: 12:23
Печать  
Anatol писал(а) 03. Ноября 2010 :: 11:28:
как я понимаю у тебя используется поставщикДанных.ТабличнаяЧасть ?
для нее таких методов не предусмотрено.

версия класса и версия 1cpp ?

зы оно?

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


Справочник
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #52 - 03. Ноября 2010 :: 12:52
Печать  
версия класса и версия 1cpp ?
  
Наверх
wwwICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #53 - 03. Ноября 2010 :: 13:07
Печать  
Anatol писал(а) 03. Ноября 2010 :: 12:52:
версия класса и версия 1cpp ?

1cpp 3, 2, 2, 0
версия класса 7
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #54 - 03. Ноября 2010 :: 13:46
Печать  
Ужас

Код
Выбрать все
Предупреждение(ПоставщикДанныхМногострочнаяЧасть.Версия); 

  
Наверх
wwwICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #55 - 03. Ноября 2010 :: 14:16
Печать  
Anatol писал(а) 03. Ноября 2010 :: 13:46:
Ужас

Код
Выбрать все
Предупреждение(ПоставщикДанныхМногострочнаяЧасть.Версия); 


3.05.006 12.05.2010
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #56 - 03. Ноября 2010 :: 14:26
Печать  
HeiHeShang писал(а) 03. Ноября 2010 :: 14:16:
Anatol писал(а) 03. Ноября 2010 :: 13:46:
Ужас

Код
Выбрать все
Предупреждение(ПоставщикДанныхМногострочнаяЧасть.Версия); 


3.05.006 12.05.2010



Присмотрись и ОБНОВИСЬ
  
Наверх
wwwICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #57 - 03. Ноября 2010 :: 14:31
Печать  
Anatol писал(а) 03. Ноября 2010 :: 14:26:
HeiHeShang писал(а) 03. Ноября 2010 :: 14:16:
Anatol писал(а) 03. Ноября 2010 :: 13:46:
Ужас

Код
Выбрать все
Предупреждение(ПоставщикДанныхМногострочнаяЧасть.Версия); 


3.05.006 12.05.2010



Присмотрись и ОБНОВИСЬ

Собствено этот файл я и качал.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #58 - 03. Ноября 2010 :: 14:42
Печать  
ну блин... из любопытства скачал себе и проверил

что скачивал ты хз
  

___________001.png ( 3 KB | Загрузки )
___________001.png
Наверх
wwwICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #59 - 03. Ноября 2010 :: 14:49
Печать  
Anatol писал(а) 03. Ноября 2010 :: 14:42:
ну блин... из любопытства скачал себе и проверил

что скачивал ты хз

Да я сам проверил, один файл почему-то не заменился при копировании.
  
Наверх
 
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #60 - 06. Ноября 2010 :: 14:03
Печать  
Ни че не помогает, все равно обрезает
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #61 - 06. Ноября 2010 :: 15:22
Печать  
Озадачен  давай выкладывай свою обработку ...  
  
Наверх
wwwICQ  
IP записан
 
Петр
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 06. Августа 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #62 - 06. Ноября 2010 :: 16:32
Печать  
Хотел спросить про набор классов ЭлементыФормы, которые идут с ПоставщикомДанных. В конструкторе классов есть код

Цитата:
СистемныеОперации = СоздатьОбъект("Общее.СистемныеОперации");

На него постоянно ругается, что нет такого класса, поискал в доке, по форуму. Но что это за класс Общее так и не нашел ответа.
Где его можно взять? Нерешительный
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #63 - 06. Ноября 2010 :: 18:27
Печать  
Элементы формы используются только для класса "ЭлементыФормы.Закладки", я их переделывал, и больше нет ссылок на другие классы... хотя... в общем раньше чем в пн не смогу выложить "правильную" сборку. К сожалению ноут на работе оставил.
Напиши мне в ЛС в понедельник чтобы вдруг не забыл.
  

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


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #64 - 07. Ноября 2010 :: 02:53
Печать  
Код
Выбрать все
Процедура ИнициализацияМногострочнойЧасти()
	ПоставщикДанныхМногострочнаяЧасть = СоздатьОбъект("ПоставщикДанных");
	ПоставщикДанныхМногострочнаяЧасть.ТипЗначений = "Справочник.Номенклатура";
	ПоставщикДанныхМногострочнаяЧасть.КонтейнерТабличногоПоля = "ТабличноеПолеМногострочнойЧасти";
	ПоставщикДанныхМногострочнаяЧасть.КонтейнерКоманднойПанели = "КоманднаяПанельМногострочнойЧасти";

	ДанныеСправочник = ПоставщикДанныхМногострочнаяЧасть.Данные;
	ДанныеСправочник.КнопкаПросмотр = 1;
	ДанныеСправочник.РежимВыбора=1;
	ДанныеСправочник.СоздатьКнопкиПоУмолчанию();

	ТабличноеПоле = ДанныеСправочник.ТабличноеПоле;
	ТабличноеПоле.СтильЗаголовков = 1;
	ТабличноеПоле.СтильРамки = 1;

	ДанныеСправочник.НоваяКолонка("Код");
	ДанныеСправочник.НоваяКолонка("Артикул");
	ДанныеСправочник.НоваяКолонка("Наименование");
	Колонки = ТабличноеПоле.Колонки;
	Колонка = Колонки.Добавить("Ост");
	Колонка.Имя = "Остаток";
	Колонка.Данные = "Количество";
	Колонка.Заголовок = "Ост";
	Колонка.Ширина = 5;
	Колонка.ГоризонтальноеВыравнивание = 2;
	Колонка = Колонки.Добавить("Ед");
	Колонка.Имя = "Ед";
	Колонка.Данные = "Фасовка";
	Колонка.Заголовок = "Ед.";
	Колонка.Ширина = 4;
	Колонка.ГоризонтальноеВыравнивание = 2;
	Колонка = Колонки.Добавить("Цена");
	Колонка.Имя = "Цена";
	Колонка.Данные = "Цена";
	Колонка.Заголовок = "Цена";
	Колонка.Ширина = 5;
	Колонка.ГоризонтальноеВыравнивание = 2;
	Код = Колонки.Получить("Код");
	Код.Ширина = 7;
	Артикул = Колонки.Получить("Артикул");
	Артикул.Ширина = 8;
	Колонка = Колонки.Добавить("ОстТМЦ");
	Колонка.Ширина = 0;
	Колонка.Заголовок = "ОстТМЦ";
	Колонка.Данные = "КоличествоТМЦ";

	Колонка = Колонки.Добавить("СрокГодности");
	Колонка.Ширина = 10;
	Колонка.Заголовок = "СрокГодности";
	Колонка.Данные = "СрокГодности";

	Колонка = Колонки.Добавить("Сортировка");
	Колонка.Ширина = 10;
	Колонка.Заголовок = "Сортировка";
	Колонка.Данные = "Сортировка";

	Колонка = Колонки.Добавить("МРЦ1");
	Колонка.Ширина = 10;
	Колонка.Заголовок = "МРЦ";
	Колонка.Данные = "МРЦ";

	СП=СоздатьОбъект("СписокЗначений");
	СП.ДобавитьЗначение("Код");
	СП.ДобавитьЗначение("Артикул");
	СП.ДобавитьЗначение("СрокГодности");
	СП.ДобавитьЗначение("Сортировка");
	СП.ДобавитьЗначение("МРЦ");
	СП.ДобавитьЗначение("Цена");
	СП.ДобавитьЗначение("Фасовка");
	СП.ДобавитьЗначение("Наименование");

	ДанныеСправочник.УстановитьПоляЗапроса(СП);
	Парам = Форма.Параметр;
	Склад = Парам.Получить("Склад");
	Если ТипЗначенияСтр(Склад)="СписокЗначений" Тогда
		ДанныеСправочник = ПоставщикДанныхМногострочнаяЧасть.Данные;
		ТабличноеПоле = ДанныеСправочник.ТабличноеПоле;
		Колонки = ТабличноеПоле.Колонки;

		Если Колонки.Индекс("Склад")=-1 Тогда

			Колонка = Колонки.Добавить("Склад");
			Колонка.Имя = "Склад";
			Колонка.Данные = "Склад";
			Колонка.Заголовок = "Склад";
			Колонка.Ширина = 10;
			Колонка.ГоризонтальноеВыравнивание = 2;

		КонецЕсли;
	КонецЕсли;
	ОтборНаименование = ТабличноеПоле.Отбор.Наименование;
	ОтборНаименование.Использование = 0;
	ОтборНаименование.ВидСравнения = ВидыСравнения.НачинаетсяС;
	ОтборНаименование.Значение = "";
	ПоставщикДанныхМногострочнаяЧасть.Обновить();
КонецПроцедуры // ИнициализацияМногострочнойЧасти

 

  
Наверх
 
IP записан
 
Петр
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 06. Августа 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #65 - 08. Ноября 2010 :: 10:28
Печать  
А есть ли планы в классы ПоставщикаДанных добавить класс, реализующий работу с много табличным документом? Тогда получиться законченная библиотека решающая большинство проблем семерки.?
  
Наверх
 
IP записан
 
mirvel
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 55
Зарегистрирован: 28. Августа 2010
Братцы подскажите как отсортировать отображаемые данные!!!
Ответ #66 - 12. Ноября 2010 :: 16:39
Печать  
Сортирова отлично работает....достаточно кликнуть на заголовок колонки......и программно отлично получается...................НО ТОЛЬКО не для тех полей у которых значения периодические (числового) типа......
ЧТО ДЕЛАТЬ?
Плачущий
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #67 - 12. Ноября 2010 :: 17:50
Печать  
Дабы в ЛС все не обсуждать отвечу тут.
Сортировка возможна только по реквизитам справочника с признаком "Сортировка = 1" установленным в метаданных.
Для реквизитов с типом "Строка" неограниченной длины, и периодических реквизитов данный признак всегда равен 0, соответственно сортировка по ним невозможна.
Выход по сути только один: ПрямойЗапрос + ПоставщикДанных.ИндексированнаяТаблица.
Реализация сортировки по периодическим реквизитам в виде динамического чтения с базы данных, в свете особенностей работы 1С и ТП, просто нецелесообразна с точки зрения оптимальности работы.
  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #68 - 13. Ноября 2010 :: 04:51
Печать  
При попытке посмотреть движения документа выдает из ПоставщикДанных.Журнал:
"Результат = ПрямойЗапрос.Выполнить(,ТекстЗапроса);
{C:\КЛАССЫ\POST\ПОСТАВЩИКДАННЫХ.ДВИЖЕНИЯДОКУМЕНТА.ERT(337)}: ПоставщикДанных.ПрямойЗапрос::Выполнить(Строка ТипОбъекта=ИндексированнаяТаблица, Строка ТекстВыполнения=select
     case when ra.debkred = 0 then '+' else '-' end as ВидДвижения
     
     ,$ra.Фирма as [Фирма $Справочник.Фирмы]
     ,$ra.Номенклатура as [Номенклатура $Справочник.Номенклатура]
     ,$ra.Склад as [Склад $Справочник.Склады]
     ,$ra.ЦенаПрод as [ЦенаПрод $Число]
     ,$ra.Количество as [Количество $Число]
     ,$ra.Внутреннее as [Внутреннее $Число]
     ,$ra.ВидДвижения as [ВидДвижения $Число]
from Регистр.ОстаткиТМЦ as ra $nolock
where iddoc = '  CNYH022', Число БезПодготовки=0) : Колонка ВидДвижения уже есть!
ЗапросODBC.ВыполнитьИнструкцию(ТекстЗапроса,ПолучательЗапроса,1);
{C:\Классы\Post\ПоставщикДанных.ПрямойЗапрос.ert(12551) }"
Этот результат при использовании icpp ver 3.2.3.2, 3.2.1.26, 3.2.2.7 и 3.2.1.10.
Версия класса: 3.06.004 от 21.07.10 г.
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #69 - 13. Ноября 2010 :: 05:23
Печать  
Чего-то я не подумал что у пользователя может быть измерение, ресурс или реквизит с идентификатором "ВидДвижения" Улыбка. Исправимся.
  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #70 - 13. Ноября 2010 :: 05:29
Печать  
vandalsvq писал(а) 13. Ноября 2010 :: 05:23:
Чего-то я не подумал что у пользователя может быть измерение, ресурс или реквизит с идентификатором "ВидДвижения" Улыбка. Исправимся.

Спасибо, vandalsvq! Тут же понял, как поправить! Улыбка
А Вы не могли бы какую-нибудь подборку примеров по работе с поставщиками данных подкинуть, ато пособирал по двум топикам и у меня не всё взлетает.
  

Каждая система проходит три стадии:&&1) Шумиха&&2) Неразбериха&&3) Поиск виновных (собственно, рабочий процесс)&&4) Наказание невиновных&&5) Награждение непричастных&& В.М. Глушков
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #71 - 13. Ноября 2010 :: 06:10
Печать  
К сожалению на текущий момент нет возможности заняться данным вопросом. Времени просто нет.
Я не берусь обещать, но вполне возможно появление версии 4.1.1 уже в эти выходные. Из изменений можно посмотреть в теме про обновления и релизы, в предпоследнем сообщении перечислены (зачеркнутым шрифтом) все внесенные изменения. Которых на самом деле очень много, и часть из них к сожалению частично побили обратную совместимость.
Пы.сы. версия 4.1.1 будет адаптирована под icpp 3.2.3.х и выше.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Laurus
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 3
Зарегистрирован: 16. Ноября 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #72 - 16. Ноября 2010 :: 04:22
Печать  
Подскажите, почему не верно отображается значение периодического реквизита справочника в табличном поле, если дата значения ревизита равна Рабочей дате?
Например, для числового типа, значение реквизита на '15.11.10' задано 30, а на '16.11.10' задано 50, Рабочая дата '16.11.10' - В табличном поле отображается 30.

Пробовал на примере "Справочник Контрагенты.ert", который прилагался к классу, и на типовой Бухгалтерии, только добавил в справочник Контрагенты периодический реквизит.

7.07.027 DBF, 1С++ 3.2.3.2, 1sqlite 1.0.2.3, FormEx 2.05.101
Версия = "3.07.001.5 04.08.2010"
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #73 - 18. Ноября 2010 :: 14:50
Печать  
Есть несколько предложений по "необратимому улучшению" класса Улыбка
  • В связи с обсуждением особенностей формата в 1С Табличное поле - формат колонки было-бы неплохо переделать форматы колонок в ТП (пока встретил в классе ПоставщикДанных.ИндексированнаяТаблица, но может и еще где есть) к виду
    Код
    Выбрать все
    Колонка.Формат = "Ч"+СокрЛП(Длина+Цел((Длина-Точность-1)/3))+"."+СокрЛП(Точность)+", "; 
    
    
    А то получается что не видно всего введенного значения
  • Никто так ничего и не ответил на вопрос "Как редактировать реквизит имеющий тип значения "Неопределенный" в ПоставщикДанных.ТабличнаяЧасть". Посему решал сам следующим образом - добавил в класс ПоставщикДанных.ТабличнаяЧасть в секцию МЕТОДЫ ТАБЛИЧНОЙ ЧАСТИ ДОКУМЕНТА следующую процедуру
    Код
    Выбрать все
    Процедура НазначитьТип(Идентификатор,ТипВид,Длина=0,Точность=0) Экспорт
    	Если СтруктураДанных.НайтиКлюч(Идентификатор,0) = -1 Тогда
    		Возврат;
    	КонецЕсли;
    	КонтекстФормы.НазначитьТип(Идентификатор,ТипВид,Длина,Точность); // если реквизит не "неопределенного" вида - сразу получим исключение
    	ВложеннаяСтруктура = СтруктураДанных.Получить(Идентификатор);
    	ВложеннаяСтруктура.ТипВид = ТипВид;
    	лПозРазделителя = Найти(ТипВид, ".");
    	Если лПозРазделителя <> 0 Тогда
    		ВложеннаяСтруктура.Тип = Лев(ТипВид, лПозРазделителя-1);
    		ВложеннаяСтруктура.Вид = Сред(ТипВид, лПозРазделителя+1);
    	Иначе
    		ВложеннаяСтруктура.Тип = ТипВид;
    		ВложеннаяСтруктура.Вид = "";
    	КонецЕсли;
    	ВложеннаяСтруктура.Длина = Длина;
    	ВложеннаяСтруктура.Точность = Точность;
    КонецПроцедуры 
    
    

    и вызываю ее из модуля документа следующим образом
    Код
    Выбрать все
    	ПоставщикДанныхТабличнаяЧасть.Данные.НазначитьТип("СубД"+Строка(НСуб), Строка(СчД.ВидСубконто(НСуб).ТипСубконто()));
     
    
    

    Для ПоставщикДанных.Справочник можно поступить подобным-же образом
  • В процедуру ПриЗаписи_ТипЗначений базового класса ПоставщикДанных в самый конец длинного условия по ТипуЗначений добавить следующую конструкцию
    Код
    Выбрать все
    	Иначе
    		Если ПустоеЗначение(ПоставщикДанных) = 1 Тогда
    			Попытка
    				ПоставщикДанных = СоздатьОбъект("ПоставщикДанных."+СокрЛП(ТипЗначений));
    				ПоставщикДанных.КонтекстФормы = КонтекстФормы;
    			Исключение
    			КонецПопытки;
    		КонецЕсли;
     
    
    

    что позволит подключать свои унаследованные или новые классы к ПоставщикуДанных не меняя  его кода. А то сейчас приходится корректировать базовые классы если нужно добавить какой-то недостающий функционал.

Как общественность а главное Автор смотрят на подобные изменения?
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #74 - 18. Ноября 2010 :: 15:05
Печать  
avgreen писал(а) 18. Ноября 2010 :: 14:50:
Есть несколько предложений по "необратимому улучшению" класса Улыбка
  • В связи с обсуждением особенностей формата в 1С Табличное поле - формат колонки было-бы неплохо переделать форматы колонок в ТП (пока встретил в классе ПоставщикДанных.ИндексированнаяТаблица, но может и еще где есть) к виду
    Код
    Выбрать все
    Колонка.Формат = "Ч"+СокрЛП(Длина+Цел((Длина-Точность-1)/3))+"."+СокрЛП(Точность)+", "; 
    
    
    А то получается что не видно всего введенного значения

А с чего вдруг такая формула? Она заточено только под твой формат. В общем, я против.
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #75 - 18. Ноября 2010 :: 21:51
Печать  
JohnyDeath писал(а) 18. Ноября 2010 :: 15:05:
avgreen писал(а) 18. Ноября 2010 :: 14:50:
Есть несколько предложений по "необратимому улучшению" класса Улыбка
  • В связи с обсуждением особенностей формата в 1С Табличное поле - формат колонки было-бы неплохо переделать форматы колонок в ТП (пока встретил в классе ПоставщикДанных.ИндексированнаяТаблица, но может и еще где есть) к виду
    Код
    Выбрать все
    Колонка.Формат = "Ч"+СокрЛП(Длина+Цел((Длина-Точность-1)/3))+"."+СокрЛП(Точность)+", "; 
    
    
    А то получается что не видно всего введенного значения

А с чего вдруг такая формула? Она заточено только под твой формат. В общем, я против.

Почему вдруг под мой?
Если как в примере взять реквизит типа число 10.0 Формат у него по старой формуле тоже будет 10.0. Вводишь десять знаков, они все видны, пока поле редактируется. Но после завершения редактирования мы видим в ячейке восемь девяток - т.е. "99 999 999". С разделителями тысяч это конечно 10 знаков но по моему от этого не легче. Явное нессоответствие содержимого ячейки и отображения.
Можно другой вариант - убрать разделитель тысяч. Тогда тоже получим нормальное отображение, но я подозреваю что против такого решения будет большинство. Все-таки с разделителями удобочитаемость выше
  
Наверх
ICQ  
IP записан
 
mirvel
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 55
Зарегистрирован: 28. Августа 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #76 - 22. Ноября 2010 :: 07:55
Печать  
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #77 - 22. Ноября 2010 :: 08:36
Печать  
mirvel писал(а) 22. Ноября 2010 :: 07:55:


Посмотри события реализуемые самим поставщиком (а не стандартным табличным полем), например "ПередНачаломИзменения". Вроде такое есть, не помню счас уже. Внимательнее изучай документацию Подмигивание.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Laurus
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 3
Зарегистрирован: 16. Ноября 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #78 - 22. Ноября 2010 :: 16:01
Печать  
ПоставщикДанных.Справочник При копировании элемента значение периодического реквизита получается пустым.
Мне помогло следующее, стр(2393) вместо:
Код
Выбрать все
ЗначениеРеквизита = ТекущийЭлемент.ПолучитьАтрибут(МетаРеквизит.Идентификатор); 


вставил:
Код
Выбрать все
Если МетаРеквизит.Периодический = 1 Тогда
	ЗначениеРеквизита = ескихРеквизитов);
Иначе
	ЗначениеРеквизита = ТекущийЭлемент.ПолучитьАтрибут(МетаРеквизит.Идентификатор);
КонецЕсли;
 



А вот с этой проблемой так и не разобрался:
Laurus писал(а) 16. Ноября 2010 :: 04:22:
Подскажите, почему не верно отображается значение периодического реквизита справочника в табличном поле, если дата значения ревизита равна Рабочей дате?
Например, для числового типа, значение реквизита на '15.11.10' задано 30, а на '16.11.10' задано 50, Рабочая дата '16.11.10' - В табличном поле отображается 30


Может где чего подкрутить надобно  Нерешительный

7.07.027 DBF, 1С++ 3.2.3.2, 1sqlite 1.0.2.3, FormEx 2.05.101
Версия = "3.07.001.5 04.08.2010"

  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #79 - 23. Ноября 2010 :: 07:31
Печать  
Я когда в строй вернусь то все подправлю.
По периодике поищи где формируется текст запроса и там посмотри чтобы параметр даты был с модификатором "~".
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #80 - 24. Ноября 2010 :: 22:23
Печать  
Наконец не смотря на тотальную нехватку времени решился на окончательную сборку релиза 4.1.1. Будем считать его тестовым, поэтому убедительная просьба сделать себе сначала копию с текущего состояния прежде чем переходить на новый релиз. По идее он на 99% обратно совместим, но те кто осилил добавление произвольных полей для отбора могут случайно пострадать.
Но для большинства изменения не опасны для жизни, а возможно даже очень полезны.

Выложена новая сборка классов:

4.1.1 от 25.11.10 г.
- Изменен принцип нумерации версий. Версия, релиз, сборка указываются без 0.
- Полностью реализован функционал объекта «ПоставщикДанных.ДеревоЗначений».
- Полностью изменен принцип работы объекта «Отбор». Объекты: Отбор, ЭлементОтбора, ПоляНастройки, ПолеНастройки не являются объектами класса «ПоставщикДанных», а реализованы как общие объекты с возможностью использования их в других классах и системах.
- Удалены процедуры поиска по значению. Начиная с версии 4.1.х поиск реализован двумя способами: быстрый поиск по подстроке при вводе в ячейке табличного поля (быстрый поиск), поиск по значению при помощи стандартных механизмов платформы 1С: Предприятие 7.7 (поле, расположенное в окне платформы, и при помощи кнопки Ctrl+F).
- Исправлены множественные ошибки найденные в версии 3.07.ххх
- Добавлена запись действий пользователя в журнале регистрации по всем видам объектов.
- Обработка событий Ctrl+C (копирование) удалена из класса, в виду реализации на уровне ВК icpp (1C++) начиная с версии 3.2.3.1.
- Изменена работа флага СтандартныйБыстрыйПоиск. При значении = 1 срабатывает поиск реализованный объектом расширением табличного поля (поставщика данных), при значении = 0 срабатывает стандартный для табличного поля быстрый поиск.
- Отключена форма для поиска значений. Методы: НайтиЗначение, ОткрытьФормуПоиска, НайтиДалее, НайтиНазад оставлены для обратной совместимости. Интерактивные возможности вызова методов удалены.
- Исправлены некоторые выявленные ошибки при работе класса.
- Проведена оптимизация вывода данных при использовании поиска по значению.
- Объект «ПоставщикДанных.ПрямойЗапрос» обновлен до версии 1.7.21 от 25.11.10 г.
- Исправлена ошибка печати отчета о движениях документа, если в программе 1 план счетов.
- Исправлена регистрозависимость быстрого поиска по подстроке для DBF формат БД, если строка неограниченной длины.
- Все пиктограммы реализованы в качестве системных через соответствующие методы, атрибуты и события элемента управления табличное поле.
- Новый атрибут КолонкаПиктограмм у объектов расширений табличного поля «ПоставщикДанных.Журнал», «ПоставщикДанных.Проводки»  «ПоставщикДанных.Документы», «ПоставщикДанных.Справочник», «ПоставщикДанных.Операции», «ПоставщикДанных.Регистр» и «ПоставщикДанных.ДеревоЗначений».
- Новый публичный атрибут «ОтображатьИерархию» у объекта-расширения «ПоставщикДанных.Справочник».
- Исправлена работа пометки колонки знаком сортировки у всех расширений. Для некоторых при выборе заголовка добавлена сортировка с учетом текущего направления.
- У объекта-расширения «ПоставщикДанных.Справочник» изменена логика поведения при двойном клике на группу. Независимо от колонки происходит свертка и развертка группы.
- Убрано ограничение на использование картинок совместно с системными картинками.
- Изменен набор пиктограмм для табличного поля. Все пиктограммы стали с прозрачным фоном. Изменены пиктограммы для расширений Операции, Проводки и Регистр. Добавлены пиктограммы для отображения дерева.
- Добавлено новое расширение «ПоставщикДанных.ДеревоЗначений».
- Исправлен расчет границ ячеек таблицы при печати содержимого табличного поля.
- Изменены предопределенные настройки табличного поля при создании элемента управления.

ВНИМАНИЕ:
- начиная с версии 4.1.1 поддержка версии 3.хх.ххх прекращена. Пострадала обратная совместимость в рамках использования доп. возможностей отборов (добавление элементов отбора в 3.хх.ххх отличается от 4.х.х).
- версия icpp не ниже 3.2.3.1


Сабж
  

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



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #81 - 25. Ноября 2010 :: 08:47
Печать  
vandalsvq писал(а) 24. Ноября 2010 :: 22:23:
- Полностью изменен принцип работы объекта «Отбор». Объекты: Отбор, ЭлементОтбора, ПоляНастройки, ПолеНастройки не являются объектами класса «ПоставщикДанных», а реализованы как общие объекты с возможностью использования их в других классах и системах.


Несовместимость однако! Печаль
Объекты "Отбор" и "ЭлементОтбора" уже существуют в"Поставщике данных - Журнал регистрации"
Я конечно понимаю что разработчики в свое время поспешили использовать такие общие названия и было-бы логично назвать их "ОтборЖурналаРегистрации" и "ЭлементОтбораЖурналаРегистрации". Но как говорил наш бывший президент в переводе на русский "Мы имеем то что мы имеем" - переписывать этот кусок кода в 1с++ врядли кто будет. Поэтому не мог-бы ув. vandalsvq изменить названия классов на что нибудь более уникальное. Префикс к примеру поставить "ОбъектV8." .... пока еще не началось активное их иоспльзование
  
Наверх
ICQ  
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #82 - 25. Ноября 2010 :: 09:32
Печать  
Петр писал(а) 08. Ноября 2010 :: 10:28:
А есть ли планы в классы ПоставщикаДанных добавить класс, реализующий работу с много табличным документом? Тогда получиться законченная библиотека решающая большинство проблем семерки.?

Кстати таки интересно - планируется или нет? Если нет - то я уже начал писать свой вариант - "МультиТабличнаяЧасть" на основе (в виде наследника) "ТабличнойЧасти"
Если-же планируется в ближайшее время или уже пишется - то не буду изобретать велосипед.
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #83 - 25. Ноября 2010 :: 09:42
Печать  
Слушай, а я про объекты "Отбор" и "ЭлементОтбора" даже не вспомнил. Улыбка)))) вот дела. И даже "ОбъектV8" оставлю, красив (хоть и с переключением раскладки).

На счет мультитабличной части, в ближайшие месяца 2 я за 7.7 не планировал всерьез садится. Как говорится все карты в руки, если появится дополнительный класс который пройдет боевую жизнь на твоей базе я с удовольствием его включу в состав разработки.
  

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


1C++ rocks!

Сообщений: 55
Зарегистрирован: 28. Августа 2010
Класс "ПоставщикДанных" -обсуждения. Часть 2.  спис.к значений
Ответ #84 - 25. Ноября 2010 :: 12:14
Печать  
Вообщем ининциализировал табличное поле с командной панелью
и....
Т=создатьобъект("поставщикданных");
Т.типзначений="списокзначений"


у меня на форме появились поле для списка значения и командной поле с кнопками по умолчанию

а как теперь в это окно добавить или загрузить обычный списокзначений?
пробывал присовоить....Т.данные=СЗ и Т.Данные.Списокзначений=СЗ, и СЗ.Выгрузить(Т.Данные.СписокЗначений)....
ничего не помогает!!!!!!!
и второй вопрос...раз у обычного списказначений есть аналог поставщикданных.списокзначений......значит у таблицызначений..тоже должен быть? или аналог ТЗ это индексированная таблица?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #85 - 25. Ноября 2010 :: 12:19
Печать  
После установки СписокЗначений или загрузки в него данных вызови "Обновить" чтобы данные считались из списка.
На самом деле тот список что ты видишь это поставщик данных ИТЗ просто с ограниченным функционалом и набором колонок Улыбка.
  

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


1C++ rocks!

Сообщений: 55
Зарегистрирован: 28. Августа 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #86 - 25. Ноября 2010 :: 12:31
Печать  
vandalsvq писал(а) 25. Ноября 2010 :: 12:19:
После установки СписокЗначений или загрузки в него данных вызови "Обновить" чтобы данные считались из списка.
На самом деле тот список что ты видишь это поставщик данных ИТЗ просто с ограниченным функционалом и набором колонок Улыбка.

да я вроде обнавлял...все равно не получалось.......
вот текст инициализации

     ПоставщикДанныхНоваяТЗ = СоздатьОбъект("ПоставщикДанных");
     ПоставщикДанныхНоваяТЗ.ТипЗначений = "СписокЗначений";
//здесь я вроде как пытаюсь загрузить данные.....
ПоставщикДанныхНоваяТЗ.данные.списокзначений=СЗ //обычный список значений

     
     ПоставщикДанныхНоваяТЗ.КонтейнерТабличногоПоля = "НоваяТЗ";
     ПоставщикДанныхНоваяТЗ.КонтейнерКоманднойПанели = "КоманднаяПанельНоваяТЗ";
     данныетз=ПоставщикДанныхНоваяТЗ.Данные;

     данныетз.СоздатьКнопкипоУмолчанию();
     ПоставщикДанныхНоваяТЗ.обновить();

не получается
« Последняя редакция: 25. Ноября 2010 :: 16:51 - mirvel »  
Наверх
 
IP записан
 
Jarad
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 35
Зарегистрирован: 22. Мая 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #87 - 28. Ноября 2010 :: 20:59
Печать  
Перерыл старую ветку, вроде все делаю правильно, ошибок не возникает, но и кнопка не добавляется, на панели только стандартные кнопки.
Код
Выбрать все
ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
	ПоставщикДанных.ТипЗначений = "Справочник.Номенклатура";
	ПоставщикДанных.КонтейнерКоманднойПанели = "КонтейнерКоманднаяПанель";
	ПоставщикДанных.КонтейнерТабличногоПоля = "КонтейнерТабличноеПоле";

ТабличноеПоле = ПоставщикДанных.ТабличноеПоле;
ТабличноеПоле.СтильЗаголовков = 1;
ТабличноеПоле.СтильРамки = 1;
ТабличноеПоле.СтандартныйБыстрыйПоиск = 1;


ДанныеСправочник = ПоставщикДанных.Данные;
ДанныеСправочник.СоздатьКнопкиПоУмолчанию();
ДанныеСправочник.НоваяКолонка("Код");
ДанныеСправочник.НоваяКолонка("Артикул");
ДанныеСправочник.НоваяКолонка("Наименование");
ДанныеСправочник.НоваяКолонка("ВидТовара");


СвойствоКоманднаяПанель = ТабличноеПоле.КоманднаяПанель;

СвойствоКоманднаяПанель.ДобавитьПиктограммыВКоллекцию("ТипыДанных",13);
Кнопка = СвойствоКоманднаяПанель.Кнопка("Партии",1,,7,"Партии",ТабличноеПоле);
Кнопка.Подсказка = "Подчиненные справочники";
Кнопка.Доступность = ТабличноеПоле.ИзменятьСоставСтрок;
СвойствоКоманднаяПанель.Добавить(Кнопка);
СвойствоКоманднаяПанель.Обновить();
 

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #88 - 29. Ноября 2010 :: 07:52
Печать  
Я делал примерно так:


Код
Выбрать все
	КП = ПоставщикНоменклатура.Данные.КоманднаяПанель;
	КН = ПоставщикНоменклатура.Данные.КоманднаяПанель.Кнопки;

	......

	//Добавляем пользовательские кнопки
	КП.Добавить(КП.Кнопка("Разделитель_5",4));

	КП.ДобавитьПиктограммыВКоллекцию(КаталогИБ()+"Images\format-indent-more.bmp", 1);
	НоваяКнопка = КП.Кнопка("НаличиеОстатков", 2, , 27,"НаличиеОстатков", глВзятьКонтекст(Контекст));
	КП.Добавить(НоваяКнопка);

	.....

	Кнопка = КН.Получить("НаличиеОстатков");
	ПоложениеКнопкиОстатки = ?(ПустоеЗначение(ВосстановитьЗначение("ПоложениеКнопкиОстатки")) = 1, 0, 1);
	Кнопка.Объект.Value = ПоложениеКнопкиОстатки; //Вдавим кнопку по уполчанию
 

  
Наверх
wwwICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #89 - 03. Декабря 2010 :: 02:25
Печать  
День добрый!
Только начала разбираться с классом, поэтому возможно туплю где-то. Документацию читала... вроде... Улыбка
Не получается сделать отбор в справочнике. Надо сделать программный отбор по нескольким реквизитам, при этом значения для отбора должны вводиться пользователм на форме в реквизиты формы (но при тесте я подставляла конкретное значение, все равно не работает).

Есть примерно такой код.

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

	пТабличноеПоле = пПоставщикДанных.ТабличноеПоле;
	пТабличноеПоле.СтильЗаголовков = 1;
	пТабличноеПоле.СтильРамки = 1;
	пТабличноеПоле.ЧередованиеЦветовСтрок = 0;  

	пДанные = пПоставщикДанных.Данные;
	пДанные.НоваяКолонка("ПометкаУдаления");
	пДанные.НоваяКолонка("Код");
	пДанные.НоваяКолонка("Фамилия");
	пДанные.НоваяКолонка("Имя");
	пДанные.НоваяКолонка("Отчество");
	пДанные.НоваяКолонка("ДатаРождения");

	пДанные.РеквизитСортировки = "Фамилия";
	пДанные.РежимОтладки = 1;//
	пДанные.ПросмотрПоВладельцу = 1;
	пДанные.СоздатьКнопкиПоУмолчанию();

	пОтбор = пТабличноеПоле.Отбор;
    пФамилия = пОтбор.Добавить("Фамилия",1);
	пФамилия.ПолеДанных = "ФизическиеЛица.Фамилия";
	пФамилия.Использование = 1;  
	пФамилия.ВидСравнения = "НачинаетсяС";
	пФамилия.Значение = "Иванов";

	пТабличноеПоле.ВосстановитьПозициюКолонок();
	пПоставщикДанных.Обновить(); 



Добавлены вот эти строки, до этого код работал:
Код
Выбрать все
	пОтбор = пТабличноеПоле.Отбор;
    пФамилия = пОтбор.Добавить("Фамилия",1);
	пФамилия.ПолеДанных = "ФизическиеЛица.Фамилия";
	пФамилия.Использование = 1;  
	пФамилия.ВидСравнения = "НачинаетсяС";
	пФамилия.Значение = "Иванов"; // тут должно быть значение с формы  



Теперь получаем ошибку:
Код
Выбрать все
пОтбор = пТабличноеПоле.Отбор;
{Справочник.ФизическиеЛица.ФормаСписка.ФормаПаспортногоСтола.Модуль(169)}: Поле агрегатного объекта не обнаружено (Отбор) 



Не подскажете, в каком именно звене цепочки ДНК у меня ошибка?   Озадачен

UPD: кажется, у меня есть версия, в каком. Подскажите, начиная с какой версии ПоставщикДанных появилась возможность такого вот синтаксиса отбора (брала его с одного примера)? И где посмотреть, какая версия ПоставщикДанных установлена у меня? Похоже, что стоит старая версия, судя по времени создания файлов и версий используемых других библиотек...
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #90 - 03. Декабря 2010 :: 05:37
Печать  
На реквизиты справочника (по метаданным) + по колонкам добавленным методом "ДобавитьКолонкуДанных" отборы не надо добавлять, они создаются автоматически. Т.е. в твоем случае просто пиши:
Код
Выбрать все
Отбор = ПоставщикДанных.ТабличноеПоле.Отбор;
ОтборПоФамилии = Отбор.Фамилия;
ОтборПоФамилии.Использование = 1;
ОтборПоФамилии.ВидСравнения = "НачинаетсяС";
ОтборПоФамилии.Значение = "Иванов";
ПоставщикДанных.Обновить(); 



А версия указана в ПоставщикДанных.Версия Улыбка
  

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


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #91 - 06. Декабря 2010 :: 03:50
Печать  
Спасибо... с отборами вроде примерно разобралась...
Но - сейчас настал случай всех злее...
Дело в том, что я пытаюсь разобраться (и доработать) в устройстве конфы, написанной с использованием вашего класса. Класс замечательный - но разбирательство идет увы, тяжело. Особенно еще и потому, что с 1С++ практически не работала раньше.
Итак, на одной и той же машине (чистая виртуалка 2003 Server + 2005 MS SQL):
1) Есть БД на которой вроде бы почти все работает. Но - на ней используется очень старая, еще 2009 года библиотека. И есть странный глюк с обновлением формы (по нему позже отдельно, похоже спрошу, не суть). БД загружалась с архива мной, но не настраивалась особо.
2) Есть ваш пример, md. Загружаю его, загружаю с инета требуемые библиотеки, рекомендованные по инструкции версии  - работает.
3) И есть БД, которую создаю я. Создала БД, код загрузки библиотек  скопировала с вашего примера в главный модуль. Папку с классами и папку с dll поместила в папку ИБ (скопировала с вашего примера и доложила библиотек - их состав такой же как на БД №2 с вашего примера).
Компоненты загружаются (в частности, появляются закладки FormEx и 1С++). Но код загрузки ПоставщикаДанных (практически копия вашего) не работает. Печаль
Получаю
Код
Выбрать все
{Справочник.Тест.Форма.Модуль(12)}: Неудачная попытка создания объекта (ПоставщикДанных) 



Такое ощущение, что классы которые я положила в папку, не видимы.
Уже все перепроверила - все чуть ли не идентично в 2 и 3 случаях, но  в случае 3 - не работает Печаль
Может вы меня на мысль какую наведете... Печаль
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #92 - 06. Декабря 2010 :: 05:41
Печать  
Навожу на мысль: defcls.prm
  
Наверх
ICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #93 - 06. Декабря 2010 :: 06:07
Печать  
ага, про него знаю
но во всех трех случаях - это один и тот же файл, лежащий в одном и том же месте... Печаль
правда, по инструкции к 1C++ он должен лежать, как я поняла, в каталоге ИБ. А лежит в КаталогИБ\SystemData, что меня несколько смущает. Но ведь в двух-то случаях из трех работает...

UPD: ага! а вот про то, что он может быть не только файлом, но и обработкой я не знала - в другой теме навели...
действительно, я ее как обработку не создавала, а в двух остальных БД она есть...
Вопрос решен, спасибо! Улыбка
  
Наверх
 
IP записан
 
sashas09
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Местоположение: Киев
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #94 - 06. Декабря 2010 :: 16:16
Печать  
День добрый

Вопрос по поставщикуДанных

Почему "отборПоЗначениюВТекущейКолонке" снимает уже существующий отбор?


и у меня что-то ничего не получается с поставщикомДанных.регистр

можно привести минимальный функциональный пример показа списка движений регистра?

  
Наверх
ICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #95 - 07. Декабря 2010 :: 01:13
Печать  
Еще один вопрос. Никак не могу побороть следующую проблему:
есть форма, на форму кладу ПолеВвода и кнопку, сбрасывающую значение этого поля.
Если на форме не подключен ПоставщикДанных, то кнопка сбрасывает значение, и в переменной, и визуально.
Если на форму подключить ПоставщикДанных, сброс значения не работает. Точнее, работает, но сбрасывает значение только в переменной, а визуально данные на форме не обновляются до тех пор, пока пользователь не введет значение в какое-нибудь другое ПолеВвода.
(В переменной - это имеется ввиду, что если ПолеВвода называется рфПоле, то при нажатии на форме кнопки с формулой Сообщить(рфПоле), данные выводятся корректные, но на самой форме они видны старые)
Форма.Обновить не помогает... Печаль Не подскажете, как с этим быть?

(для реальной задачи надо несколько полей и одну кнопку, сбрасывающую все значения, но не работает и на одном поле и кнопке с формулой вида рфПоле="").

UPD: нашла в каких случаях оно работает. Работает, если на форме списка многострочная часть находится в границах формы, даже если она уменьшена до миллиметров. Если эту часть унести за границы формы - обновление не работает. Сейчас попробую ее просто скрыть...

UPD2: если ее скрыть, то обновление тоже не работает. Печаль То есть обновление работает только в том случае, если на форме многострочная часть есть и видима. Как-то с этим можно побороться? Сброс значений нужен позарез, но и многострочную часть не хочется оставлять, пусть даже крохотную
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #96 - 07. Декабря 2010 :: 04:05
Печать  
Другая проблема, посерьезнее.
При закрытии окна с формой, имеющей ПоставщикДанных, вылетает 1С с ошибкой.
Если  согласиться запустить дебаггер в нем отображается такое:
'1cv7s.exe': Loaded 'C:\WINDOWS\system32\vbscript.dll', No symbols loaded.
Unhandled exception at 0x02cb5708 in 1cv7s.exe: 0xC0000005: Access violation.
First-chance exception at 0x02cb5708 in 1cv7s.exe: 0xC0000005: Access violation.
The thread 'Win32 Thread' (0xc98) has exited with code 0 (0x0).
Unhandled exception at 0x02cb5708 in 1cv7s.exe: 0xC0000005: Access violation.
и так далее Access violation лезут, я прерываю.

1С НЕ вылетает, если:
1) закомментировать строку //пПоставщикДанных.КонтейнерКоманднойПанели = "кнКоманднаяПанель";
2) На открывшейся форме через кнопку командной панели хотя бы раз до закрытия открыть окно с Отбором (там где настройка быстрого отбора). Возможно нажатие других кнопок тоже помогает, но не всех точно, например нажатие Обновить не помогает.

Офис установлен (2003-й).

Текст модуля прилагаю.
Версии: 1С  SQL версия 7.70.27
1С++ 3.2.1.10 (тот что прилагался к ПоставщикДанных) UPD: Версия 1С++ не та, что выше написана, а 3.2.3.2 (это я с другой базы списала). Проблема по прежнему актуальна, с версией 3.2.3.2 так же все выглядит
FormEx 2.05.101 beta (может дело в ней? но не нашла где взять 2.05.92, на сайте только либо старее, либо бета нашла)
ПоставщикДанных последний, скачан с этого форума (UPD: Версия показывает 4.1.1 01.11.2010)


« Последняя редакция: 07. Декабря 2010 :: 18:59 - Kateryne »  

TestCrash.txt ( 1 KB | Загрузки )
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #97 - 07. Декабря 2010 :: 17:01
Печать  
Интересно... Ошибка из предыдущего поста (с вылетом при закрытии формы) возникает, если код писать в модуле ФормыСписка в справочнике.
Если тот же самый код написать на форме Обработки, то все работает (код абсолютно идентичен, 100%, дизайн формы тоже скопирован, нет только многострочной части на форме).
И на форме карточки справочника - тоже работает вроде (код немного отличается, но все же похож очень сильно)
Так и должно быть? То есть - работает ли класс с формами списка? Или где-то какой-то нюанс есть, который я упускаю? Такое ощущение что проблема как-то связана с многострочной частью.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #98 - 07. Декабря 2010 :: 19:01
Печать  
Подготовь тестовую конфигурацию, чтоб другие у себя смогли посмотреть
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #99 - 07. Декабря 2010 :: 22:27
Печать  
Я нашла причину вылетов! Уф... попарилась.
Не знаю только теперь, как ее трактовать.

Дело было в файле 1Cv7.CFG, лежащем в папке пользователя.
А точнее, в параметре UserValuesProfile
При значениях UserValuesProfile определенного вида - происходил вылет.
Почистила настройки, создала файл снова - вылетов нет! Что не может не радовать.
Однако, нужна ваша консультация. По идее этот файл с настройками формировался не вручную, а системой.
Можете объяснить почему происходил вылет, и кто тут виноват - 1С сформировала файл с настройками некорректного формата, или формат настроек корректен, но не может обработаться ПоставщикомДанных?

Выкладываю файл с конфигурацией, и файлы с настройками - с вылетом и без.

Файл с настройками и вылетом:
  

crash_1Cv7_CFG.txt ( 3 KB | Загрузки )
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #100 - 07. Декабря 2010 :: 22:29
Печать  
файл с настройками без вылета
  

notcrash_1Cv7_CFG.txt ( 3 KB | Загрузки )
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #101 - 07. Декабря 2010 :: 22:30
Печать  
конфигурация
  

1Cv7_010.MD ( 91 KB | Загрузки )
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #102 - 07. Декабря 2010 :: 22:34
Печать  
Так что вопрос с вылетами для меня хотя и интересен, но уже не так актуален.

А вот предыдущий вопрос про обновление данных на форме при сбросе поля - по прежнему актуален.

Пример конфигурации, которую я выложила, как раз и включает единственный объект - справочник Тест, на форме Списка которого проявляется проблема с обновлением данных.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #103 - 08. Декабря 2010 :: 06:37
Печать  
Kateryne писал(а) 07. Декабря 2010 :: 22:27:
Я нашла причину вылетов!
....
А точнее, в параметре UserValuesProfile


сори за оффтопик, но как ВЫ до такого дошли?  Ужас
  
Наверх
wwwICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #104 - 08. Декабря 2010 :: 06:51
Печать  
Стала делать тестовый пример, как попросили выше. Перенесла с другой базы в пустую базу класс, который у меня не работал - а он, сволочь такая, заработал Улыбка
Начала разбираться, чем отличается база 1 от базы 2. Глобальник один, класс один, библиотеки одинаковые, папка с exe 1с одинаковая - значит отличие в самой БД или пользователях. Попробовала создать нового пользователя - заработало и в моей базе.
А дальше уже вопрос времени - стала удалять по одному файлу с уже существующего юзера. Заработало на удалении 1Cv7.CFG.
Скопировала его, создался дефолтный. Через текстовый Compare (сравнение текстов) начала сравнивать, чем они отличаются, и постепенно по одному параметру приводить файлы в соответствие друг другу. У нового пользователя сломалось все на приведении в соответсвие параметра массива значений UserValuesProfile Улыбка
Попарилась, конечно...
  
Наверх
 
IP записан
 
Kondarat
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 83
Зарегистрирован: 21. Декабря 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #105 - 08. Декабря 2010 :: 09:04
Печать  
Пытаюсь создать журнал документов
Код
Выбрать все
	ПоставщикДанныхЖурнал = СоздатьОбъект("ПоставщикДанных.Журнал");
	ПоставщикДанныхЖурнал.ВидЖурнала = "ДокументыПоПокупателям";

	ПоставщикДанныхЖурнал.КонтейнерТабличногоПоля = "ТабличноеПолеМногострочнойЧасти";
	ПоставщикДанныхЖурнал.КонтейнерКоманднойПанели = "КоманднаяПанельМногострочнойЧасти";

	ДанныеЖурнала = ПоставщикДанныхЖурнал.Данные;
	ДанныеЖурнала.СоздатьКнопкиПоУмолчанию();

	ТабличноеПоле = ДанныеЖурнала.ТабличноеПоле;
	ТабличноеПоле.СтильЗаголовков = 1;
	ТабличноеПоле.СтильРамки = 1;
 



При этом куча ошибок:
ПоставщикДанныхЖурнал.ВидЖурнала = "ДокументыПоПокупателям";
{D:\ЖУРНАЛЖЛКУМЕНТОВ.ERT(20)}: ПоставщикДанных.Журнал::ПриЗаписи_ВидЖурнала(Строка Параметр=ДокументыПоПокупателям) : ПоставщикДанных.ТабличноеПоле::Обновить() : ПоставщикДанных.Журнал::СформироватьТекстЗапросаСписка() : Информатор::МетодСуществует - первым параметром нужно передать контекст
Если Информатор.МетодСуществует(КонтекстФормы,ИмяМетода) = 1 Тогда
{D:\1C_BASE\DG\Classes\ПоставщикДанных\ПоставщикДанных.Журнал.ert(352) }

вирт().Обновить();
{D:\1C_BASE\DG\Classes\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(588) }

ТабличноеПоле.Обновить();
{D:\1C_BASE\DG\Classes\ПоставщикДанных\ПоставщикДанных.Журнал.ert(1158) }

Версия класса 4.1.1 от 01.11.10 г.
1С++ - 3.2.2.3

Где пробел в ДНК? Пните кто-нить...
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #106 - 08. Декабря 2010 :: 09:52
Печать  
Код
Выбрать все
ПоставщикДанныхЖурнал = СоздатьОбъект("ПоставщикДанных");
ПоставщикДанныхЖурнал.ТипЗначений = "Журнал.ДокументыПоПокупателям";
... 

  
Наверх
wwwICQ  
IP записан
 
Kondarat
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 83
Зарегистрирован: 21. Декабря 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #107 - 08. Декабря 2010 :: 12:30
Печать  
Anatol писал(а) 08. Декабря 2010 :: 09:52:
Код
Выбрать все
ПоставщикДанныхЖурнал = СоздатьОбъект("ПоставщикДанных");
ПоставщикДанныхЖурнал.ТипЗначений = "Журнал.ДокументыПоПокупателям";
... 




Ага. Догадался. Но что-то ему не нравится документ ЗаявкаПокупателя

ПоставщикДанныхЖурнал.ТипЗначений = "Журнал.ДокументыПоПокупателям";
{D:\ЖУРНАЛЖЛКУМЕНТОВ.ERT(37)}: ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=Журнал.ДокументыПоПокупателям) : ПоставщикДанных.Журнал::ПриЗаписи_ВидЖурнала(Строка Параметр=ДокументыПоПокупателям) : ПоставщикДанных.ТабличноеПоле::Обновить() : ПоставщикДанных.Журнал::УстановитьПоставщикаДанных() : no such column: $ДокЗаявкаПокупателя.Валюта
ПоставщикДанных.УстановитьТекстЗапроса(ТекстЗапроса,"[КлючПорядка]","[ТекущийДокумент :Документ]");
{D:\1C_BASE\DG\Classes\ПоставщикДанных\ПоставщикДанных.Журнал.ert(1041) }
  
Наверх
 
IP записан
 
BlueWind
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 13
Местоположение: Тирасполь
Зарегистрирован: 28. Ноября 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #108 - 08. Декабря 2010 :: 21:49
Печать  
1c++ 3.2.3.1
FormEx 2.0.5.101
1sqlite 1.0.2.3
ПоставщикДанных  4.1.1 01.11.2010 (из сборки 4.1.1 от 25.11.10)
ПоставщикДанных.Справочник из этой же сборки

В табличном поле - список элементов справочника.
Код
Выбрать все
Перем ПоставщикДанных;
//______________________________________________________________________
Процедура ПослеОткрытия()

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

	ПоставщикДанных_Справочник = ПоставщикДанных.Данные;
	ПоставщикДанных_Справочник.СоздатьКнопкиПоУмолчанию();

	ПоставщикДанных_Справочник.НоваяКолонка("Код");
	ПоставщикДанных_Справочник.НоваяКолонка("Наименование");
	ПоставщикДанных_Справочник.НоваяКолонка("ЕдиницаИзмерения",0,1);
	ПоставщикДанных_Справочник.НоваяКолонка("ШтрихКод",0,1);

	ПоставщикДанных_Справочник.АвтоОбновление = 1;
	ПоставщикДанных_Справочник.ПериодАвтоОбновления = 10;

	ПоставщикДанных.Обновить();
	//Сообщить("ПД: "+ПоставщикДанных.Версия);
КонецПроцедуры

 



1. Пометка на удаление (без вопросов для группы, но) свое отрабатывает. При снятии пометки на удаление с элемента, или с группы - клавишей, через контекстное меню или по кнопке - ошибка:

Код
Выбрать все
ПоставщикДанных.Справочник::УдалитьСтроку() : Значение не представляет агрегатный объект
ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.Справочник.ert(2543) }

ПоставщикДанных.ТабличноеПоле::УдалитьСтроку() : ПоставщикДанных.Справочник::УдалитьСтроку() : Значение не представляет агрегатный объект
ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.Справочник.ert(2543) }

вирт().УдалитьСтроку();
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(536) }

ПоставщикДанных.ТабличноеПоле::ПриНажатииКлавиши(Число КодКлавиши=46, Число Данные=22216705, 1cpp.Клавиатура Клавиатура=, Число ФСО=1) : ПоставщикДанных.ТабличноеПоле::УдалитьСтроку() : ПоставщикДанных.Справочник::УдалитьСтроку() : Значение не представляет агрегатный объект
ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.Справочник.ert(2543) }

вирт().УдалитьСтроку();
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(536) }

я().УдалитьСтроку();
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(478) }

ПоставщикДанных.ТабличноеПоле::ПриНажатииКлавиши(Число КодКлавиши=46, Число Данные=22216705, 1cpp.Клавиатура Клавиатура=, Число ФСО=1) : ПоставщикДанных.ТабличноеПоле::УдалитьСтроку() : ПоставщикДанных.Справочник::УдалитьСтроку() : Значение не представляет агрегатный объект
ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.Справочник.ert(2543) }

вирт().УдалитьСтроку();
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(536) }

я().УдалитьСтроку();
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(478) }

 



2. При выборе действия "Переместить в группу" (никакие отборы не установлены):

Код
Выбрать все
Если НастройкаОтбора.Идентификатор = "ЭтоГруппа" Тогда
{D:\WORK\РЕМЕДИУМ\ЦЕНТР SQL\КОП\ПОСТАВЩИКДАННЫХ\ПОСТАВЩИКДАННЫХ.ВЫБОРГРУППЫ.ERT(24)}: Поле агрегатного объекта не обнаружено (Идентификатор)
 


« Последняя редакция: 08. Декабря 2010 :: 23:41 - BlueWind »  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #109 - 09. Декабря 2010 :: 07:24
Печать  
Надо проверить, к сожалению счас и в ближайшее время не смогу. Если сообщество только не посмотрит... а я пока таймаут взял.  Смущённый
  

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #110 - 09. Декабря 2010 :: 07:38
Печать  
2 Kondarat скорей всего соответствующий реквизит не добавлен в графу журнала по ДокументыПоПокупателям
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #111 - 10. Декабря 2010 :: 11:03
Печать  
Уважаемые специалисты, подскажите пожалуйста новичку, правильный порядок создания отбора? Поставщик даных и ТП созданы, после чего 

пдДок = СоздатьОбъект( "ПоставщикДанных" );
...
Отбор  = пдДок.ТабличноеПоле.Отбор;
ЭлементОтбора = Отбор.Добавить( "Сумма", 1 );

И в последней строке, при добавлении происходит проверка наличия поля в ПоляНастройки. А отладчик показывает, что у ПоляНастройки поле Коллекция = "Ошибка в выражении!". Получается, что сначала надо как-то инициализировать ПоляНастройки, но как?

Применяются самые свежие версии 1С++ и Табличного Поля.
В документации и интернете примеров не нашел,  по форуму искал и тоже не нашел...
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #112 - 10. Декабря 2010 :: 11:24
Печать  
закоментировано: как было на 3.хх версии

Код
Выбрать все
	СписокФирмОграничения = СоздатьОбъект("СписокЗначений");
	Если ПустоеЗначение(глПользователь.Подразделение) = 0 Тогда

	 	СписокФирмОграничения = СоздатьОбъект("СписокЗначений");
		фрм = СоздатьОбъект("Справочник.Подразделения_Фирмы");
		фрм.ИспользоватьВладельца(глПользователь.Подразделение);
		фрм.ВыбратьЭлементы();
		Пока фрм.ПолучитьЭлемент() = 1 Цикл
			Если фрм.ПометкаУдаления() = 1 Тогда
				Продолжить;
			КонецЕсли;
		СписокФирмОграничения.ДобавитьЗначение(фрм.Элемент.ТекущийЭлемент());
		КонецЦикла;

		//ЭлементОтбора=ТабличноеПоле.Отбор.Добавить("СкрытыйОтбор",-1);
		//ЭлементОтбора.ПолеДанных = "Фирма";
		ЭлементОтбора = ТабличноеПоле.Отбор.Добавить("Фирма", "СкрытыйОтбор", "Фирма");

		ЭлементОтбора.Видимость = 0;
		ЭлементОтбора.ИзменятьИспользование = 0;
		ЭлементОтбора.Использование = 1;
		ЭлементОтбора.ВидСравнения = "ВСписке";
		ЭлементОтбора.Значение = СписокФирмОграничения;
	КонецЕсли;
 

  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #113 - 10. Декабря 2010 :: 11:47
Печать  
Большое спасибо за помощь, но при вызове            

ЭлементОтбора = ТабличноеПоле.Отбор.Добавить("Фирма", "СкрытыйОтбор", "Фирма");

происходит следующее: в модуле ОТБОР.ERT вызывается Добавить(), в которой происходит Возврат 0; вот в этом месте:

Если ПоляНастройки.НайтиПоле(ПолеНастройки) = -1 Тогда
           Возврат 0;
     КонецЕсли;

у меня подозрение, что перед добавлением в отбор надо как то проинициализировать ПоляНастройки, а как это делается - не нахожу примеров.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #114 - 10. Декабря 2010 :: 11:54
Печать  
ты добавляешь отбор по отсутствующему полю (колонке)

конкретно моего примера

Код
Выбрать все
Данные.НоваяКолонка("Фирма"); 



после этого по данной колонке можно будет добавить отбор
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #115 - 10. Декабря 2010 :: 12:00
Печать  
Прошу прощения, а если создавать колонки через
Данные.ЗаполнитьИзОбъекта( ТЗДок );

где ТЗДок - ТаблицаЗначений - что-то будет пропущено? Я как раз из ТЗ беру данные.
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #116 - 10. Декабря 2010 :: 12:08
Печать  
Вдогонку - если создать колонку вручную -Данные.НоваяКолонка("Фирма");, то выполнение
ЭлементОтбора = ТабличноеПоле.Отбор.Добавить("Фирма", "СкрытыйОтбор", "Фирма");

тоже возвращает 0, по причине того, что ПоляНастройки пустые. Может мне проще выложить тестовый пример (там только справочник фирма заменен на контрагенты), в котором отбор упорно возвращает 0?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #117 - 10. Декабря 2010 :: 12:19
Печать  
Выкладывай, посмотрим, но как я понял ты используешь ИндексированнуюТаблицу, а у нее нет отбора
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #118 - 10. Декабря 2010 :: 12:23
Печать  
Можно уточниться, в индексированной таблице нет отборов вообще? Если так, придется отказаться от табличного поля (а так хотелось).

p.s.  может есть способы реализовать хотя бы свой отбор (с книгами и поэтессами)? например держать полную ТЗ и выгружать ее в табПоле?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #119 - 10. Декабря 2010 :: 12:34
Печать  
Вообще ТЗ которую ты подгружаешь в поставщика это и есть результат ТВОИХ манипуляций с отборами. т.е что будет в тз то и будет показано в поставщике

ЗЫ в 4 версии отбор вынесен в отделный класс и управлять отбором ты можешь сам
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #120 - 10. Декабря 2010 :: 12:43
Печать  
Большое спасибо, я все понял, последний вопрос: После того, как таблица загружена, как ее можно обновлять? Дело в том, что если применять повторно метод ЗаполнитьИзОбъекта метод ПриВыводеСтроки начинает ругаться на пустое значение ДанныеСтроки.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #121 - 10. Декабря 2010 :: 13:05
Печать  
Если ПустоеЗначение(ДанныеСтроки) = 0 тогда
//твои какие то действия
иначе
//не ругаться
конецесли;

или

http://www.1cpp.ru/docum/icpp/html/IndexedTable.html#load
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #122 - 10. Декабря 2010 :: 13:11
Печать  
Спасибо огромное! Все получилось!!!
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #123 - 10. Декабря 2010 :: 16:22
Печать  
Anatol, объясни мне зачем при наличии колонки "Фирма" в метаданных справочника ты дополнительно добавляешь отбор. Ведь по всем колонкам которые есть в метаданных отборы добавляются автоматически самим поставщиком. Если ты не хочешь чтобы пользователь его видел, дык для этого у "ЭлементОтбора" есть собственные флаги.

В общем, to all, поскольку вопросов по отборам иногда возникает много то объясню сразу...
В версии 4.1.1 (собственно как и раньше) при установке ТипЗначений происходит считывание метаданных и добавление всех необходимых отборов. Т.е. если вы указали
ТипЗначений = "Справочник.Контрагенты" то все поля которые есть в контрагентах будут доступны в отборе без дополнительных "телодвижений". Достаточно написать
Код
Выбрать все
ОтборПоРеквизиту = ПоставщикДанных.Данные.Отбор.<ИмяРеквизита> 



А метод "Добавить" в объекте "Отбор" нужны для дополнительных отборов, и я их использую например если не надо отбор по метаданным реквизита справочника.
Т.е. например: у контрагенты есть реквизит "ОсновнойДоговор"  - это Справочник.Договоры. У справочника "Договоры" есть реквизит "ДатаОкончания", так вот если я хочу добавить отбор по этому реквизиту только тогда я и использую "Добавить". Хотя тут есть и второй путь, это методы "ДобавитьСоединениеДанных" и "ДобавитьКолонкуДанных". Но это совсем другая история.

Пы.сы. счас мне кажется что некоторые вещи я зря вынес наружу Улыбка.
  

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #124 - 10. Декабря 2010 :: 21:42
Печать  
vandalsvq писал(а) 10. Декабря 2010 :: 16:22:
Anatol, объясни мне зачем при наличии колонки "Фирма" в метаданных справочника ты дополнительно добавляешь отбор. Ведь по всем колонкам которые есть в метаданных отборы добавляются автоматически самим поставщиком. Если ты не хочешь чтобы пользователь его видел, дык для этого у "ЭлементОтбора" есть собственные флаги.



Это дополнительный отбор по фирме который не должен меняться пользователем. в конфе выбиваю заявки люди из разных областей (подразделений). в областях разные фирмы...

зы Вопрос был про добавление отбора...
ззы вот еще примение долнительным отборам
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #125 - 11. Декабря 2010 :: 05:46
Печать  
Уважаемые специалисты, если я еще не надоел своими вопросами, скажите пожалуйста, как в табличном поле скрывать колонки? Атрибут видимость у колонки нашел, но его программная установка в ноль не помогла (после этого делал ПоставщикДанных.Обновить() - тоже без толку ). Пока скрыл колонку через кнопку настроек, но ведь пользователь таким же образом может и вернуть, а там - служебная инфа, для него не предназначенная.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #126 - 13. Декабря 2010 :: 09:25
Печать  
Код
Выбрать все
Д.НоваяКолонка("ИмяФайла");
...
Колонка = ТП.Колонки.Получить("ИмяФайла");
Колонка.Видимость = 0; 


  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #127 - 13. Декабря 2010 :: 12:58
Печать  
Забыл добавить - колонка создавалась не через НоваяКолонка(), а через ЗаполнитьИзОбъекта(). При этом ПоставщикДанных.ТипЗначений = "ИндексированнаяТаблица"; Попробовал как Вы пишете - не сработало.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #128 - 13. Декабря 2010 :: 14:15
Печать  
да, блин...
каждый раз как ты "загружаешь из объекта" все твои данные очищаются вместе с колонками и настройками колонок.

как загрузил в ИТЗ так убирай колоку...

если структура таблицы неизменчива, то загружай в ИТЗ, не методами поставщика, а методами самой ИТЗ, а тотом просто обновляй строки ТП

  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #129 - 13. Декабря 2010 :: 14:46
Печать  
Я именно так и поступаю:


Данные = ПостДанных.Данные;
Данные.ЗаполнитьИзОбъекта( ТЗДок );
     
Колонка = Данные.Колонки.РеалДок;
Колонка.Видимость              = 0;
...
ПостДанных.Обновить();

Тем не менее, колонка РеалДок видна. Правда ниже делается ТабПоле.ВосстановитьПозициюКолонок(); - может в этом причина?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #130 - 13. Декабря 2010 :: 19:06
Печать  
Да именно в "ВосстановитьПозицииКолонок" и есть дело. Собственно лечится крайне просто, берешь и после нее впихиваешь свое отключение видимости Улыбка.
  

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


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #131 - 14. Декабря 2010 :: 04:22
Печать  
Увы, новая проблема, с которой никак не могу побороться.

На форме списка хочу вывести таблицы для двух справочников - основного и подчиненного.
Вывела, связала по Владельцу.
Написала процедуру <ИмяКнопки>ПриАктивацииСтроки(ТабличноеПоле), в которой Владелец меняется при переходе со строки на строку.

Оно даже работает.

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

Если текст процедуры закомментирован - все работает, но, естественно, данные второй таблицы не обновляются при переходе со строки на строку первой таблицы

Где посоветуете копать? Печаль

Текст процедуры:
Код
Выбрать все
Процедура кнСписокТестПриАктивизацииСтроки(пТабличноеПоле)
	ТекущийФЛ = пТабличноеПоле.ТекущаяСтрока;
	пДанныеПодч.Владелец = ТекущийФЛ;
	пПоставщикДанныхПодч.Обновить();
КонецПроцедуры 



Текст всего модуля во вложении...
  

___________.txt ( 3 KB | Загрузки )
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #132 - 14. Декабря 2010 :: 06:22
Печать  
Вот, выкладываю на всякий случай еще и md...
  

1Cv7_011.MD ( 96 KB | Загрузки )
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #133 - 14. Декабря 2010 :: 06:32
Печать  
да ничего, при "обновить" на подчиненном справочнике слетает фокус с владельца. после обновления можно принудительно делать владельца активным, но зрелище не из приятных
  
Наверх
wwwICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #134 - 14. Декабря 2010 :: 06:37
Печать  
Хм... активным? Можете подсказать как? Метод "Активизировать" вроде бы только у КоманднойПанели есть...
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #135 - 14. Декабря 2010 :: 06:57
Печать  
1 вариант хлохой

Код
Выбрать все
Процедура ТПКонтрагентыПриАктивизацииСтроки(ТП)
	Если (ПустоеЗначение(ТП.ТекущиеДанные) = 0) и (ПустоеЗначение(ПоставщикДГ) = 0) Тогда
		//ЭлементДоПоиска = Форма.АктивныйЭлемент();
		ПоставщикДГ.Данные.Владелец = ТП.ТекущиеДанные.ТекущийЭлемент;
		ПоставщикДГ.Обновить();
		//Активизировать(ЭлементДоПоиска,0);
	КонецЕсли;
КонецПроцедуры // ТПКонтрагентыПриАктивизацииСтроки 




2 вариант очень плохой

в поставщике данных ТабличноеПоле закоментировать весь текст процедуры Активизировать()

3 вариант самый ...
попросить автора о добавлении возможности управления активизации
  
Наверх
wwwICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #136 - 14. Декабря 2010 :: 07:30
Печать  
Спасибо большое!
Работает, слава богу - а то мне к четвергу надо модуль закончить Улыбка))
Да, хотелось бы конечно без лишних активизаций, если это возможно... Но и так в общем-то все пока ок Улыбка
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #137 - 14. Декабря 2010 :: 10:56
Печать  
Большое спасибо за помощь всем помогавшим! Разрешите еще злоупотребить вашей добротой? Улыбка При изменении ячейки колонки "Справочник.ТипыЦен" происходит открытие формы списка справочника во весь экран, есть ли способы открывать справочник так, как это делает Спр.Выбрать() - т.е. небольшое окошко, не закрывающее вызывающую форму?
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #138 - 15. Декабря 2010 :: 04:48
Печать  
Ребята, еще один вопрос есть...
Тут выше его уже поднимали, но пока что ответа не выложили.

Проблема со снятием пометки на удаление:
Код
Выбрать все
Выполнить процедуру 'КоманднаяПанельПриНажатии' не удалось. Обратитесь пожалуйста к разработчикам.
ПоставщикДанных.ТабличноеПоле::КоманднаяПанельПриНажатии(Строка ИмяМетода=УдалитьСтроку, СписокЗначений Параметры=) : ПоставщикДанных.ТабличноеПоле::УдалитьСтроку() : ПоставщикДанных.Справочник::УдалитьСтроку() : Значение не представляет агрегатный объект
ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
543) }

вирт().УдалитьСтроку();
t(536) }

ВыполняемыйМодуль.ВыполнитьПроцедуруКонтекста(я(),ИмяМетода,Параметры);
t(710) } 



Может, решил кто-нибудь уже?  Круглые глаза
  
Наверх
 
IP записан
 
mirvel
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 55
Зарегистрирован: 28. Августа 2010
ПД ТП тип документ
Ответ #139 - 15. Декабря 2010 :: 05:05
Печать  
Можно ли изменять значение флажка табличного поля у которого тип данных документ?
я вывожу документы в табличном поле....соответсвенно отображаю реквизиты документа в колонке табличного поля....
В документе у меня есть реквизит который принимает значение только 1 или 0...
На табличном поле этот реквизит выводиться в колонку с галочками (флажками)....
Можно ли напрямую работать мышкой устанавливать значение флажка этого реквизита?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #140 - 15. Декабря 2010 :: 07:56
Печать  
2 Kateryne
у меня не воспроизводится, скинь текстовую обработку, есть некоторые мысли

2 mirvel
можно, по событию табличного поля ПриВыбореФлажка, а потом менять реквизит в документе

2 ildary
если я правильно понял то у тебя открывается не та форма?
смотри события РежимВыбора, ПриВыбореЗначения, Выбор и открывай формы какие хочешь
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #141 - 15. Декабря 2010 :: 08:00
Печать  
2 ildary
если я правильно понял то у тебя открывается не та форма?
смотри события РежимВыбора, ПриВыбореЗначения, Выбор и открывай формы какие хочешь [/quote]

В принципе это не такая уж важная проблема, сойдет и так.
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #142 - 15. Декабря 2010 :: 08:31
Печать  
Anatol писал(а) 15. Декабря 2010 :: 07:56:
2 Kateryne
у меня не воспроизводится, скинь текстовую обработку, есть некоторые мысли


Вот md-шник весь...
  

1Cv7_012.MD ( 96 KB | Загрузки )
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #143 - 15. Декабря 2010 :: 10:08
Печать  
да, ошибочка есть, но плевая. если горит можно было и самому подправить...
  
Наверх
wwwICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #144 - 15. Декабря 2010 :: 10:47
Печать  
Anatol писал(а) 15. Декабря 2010 :: 10:08:
да, ошибочка есть, но плевая. если горит можно было и самому подправить...

Это про мою проблему, или другую? Если мою, я что-то пока не догнала, где там проблема... Печаль
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #145 - 15. Декабря 2010 :: 10:58
Печать  
да простит меня автор.. немного подправил класс

вообще размешение поставщика на формах списка справочников не есть гуд имхо!
  

___________________________001.ert ( 29 KB | Загрузки )
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #146 - 16. Декабря 2010 :: 12:02
Печать  
Дико извиняюсь, что беспокою почтенную публику, но зочется узнать вот что: создаем поставщика данных и данные берем из документа вот так:

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

после чего хотим выводить в таб.поле не только поля самого документа, но и что-то свое, например вставить колонку Пометка, а также вес документа (вычисляемый функцией из глобального модуля). Но попытка вставить новую колонку с именем, отличающимся от полей документа выдает ошибку Реквизит с идентификатором: "Пометка" не найден. Получается, что свои колонки создавать нельзя? 

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #147 - 17. Декабря 2010 :: 06:58
Печать  
смотри методы ДОБАВИТЬКОЛОНКУДАННЫХ, ДОБАВИТЬСОЕДИНЕНИЕДАННЫХ
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #148 - 17. Декабря 2010 :: 07:14
Печать  
Эти методы добавляют колонки, которые хоть как-то связаны с текущим документом - его поле или поле чего-то, которое можно связать через запрос. А мне надо доабвить колонки, которые я хочу заполнять данными самостоятельно, и которые запросом с текущим документом не связываются. Например в обычном журнале документов можно добавить текстовую колонку и делать помещать туда некое вычисление, отталкиваясь от текущего документа. Возможно ли такое в классе Табличное поле?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #149 - 17. Декабря 2010 :: 09:48
Печать  
А вычислять в запросе? А подставлять как значение параметра? А в конце концов "ПриВыводеСтроки"? Улыбка)))) Выбирай то, что нравится.
  

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #150 - 17. Декабря 2010 :: 12:23
Печать  
Уважаемый vandalsvq, спасибо за помощь, я не такой специалист по черным запросам как вы, и не знал, что туда можно вставить значение внешней функции, попробую почитать мануал. ПриВыводеСтроки - знаю такой способ, но чтобы он работал - нужна колонка, а ведь ее сначала надо создать через запрос?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #151 - 17. Декабря 2010 :: 12:59
Печать  
Просто через этоти методы добавь колоку, пусть она будет пустая

Код
Выбрать все
Данные.ДобавитьКолонкуДанных("ИмяКолонки", "Заголовок", ""'", "строка", 50, , 0);
Данные.ДобавитьКолонку("ИмяКолоки"); 



В процедуре

Код
Выбрать все
ПриВыводеСтроки(ТП, ОформлениеСтроки, ДанныеСтроки, ТипРегиона)

	Если ТипРегиона = 3 Тогда
		//Что то считаешь....
		ОформлениеЯчейки = ОформлениеСтроки.Ячейки.Получить("ИмяКолонки");
		ОформлениеЯчейки.Текст = "То что ты вычислял выше...";
	КонецЕсли; 


  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #152 - 17. Декабря 2010 :: 13:45
Печать  
Большое спасибо за помощь, но тут выдается ошибка: пробовал параметр РеквизитЗапроса = ""'" или "'" - ругаются оба.

p.s. Я правильно понимаю, что применение таб.поля с одним и тем именем в разных внешних обработках делает сохранение их параметров под одним и тем же именем, например ВнешнийОтчеттпДок.txt? Есть ли возможность изменить это имя?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #153 - 17. Декабря 2010 :: 14:28
Печать  
Попробуй "$ПустоеЗначение"

Изменять Имя Файла нельзя
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #154 - 17. Декабря 2010 :: 14:44
Печать  
ПоставщикДанных.Документы::УстановитьПоставщикаДанных() : no such column: $ПустоеЗначение
ПоставщикДанных.УстановитьТекстЗапроса(ТекстЗапроса,"[КлючПорядка]","[ТекущийДокумент :Документ."+ВидДокумента+"]");
879) }
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #155 - 17. Декабря 2010 :: 15:03
Печать  
В общем смотри, делаешь колонку с ":ПустойИД" или "' '" (суть в принципе не важно, можно даже из родного запроса код, наименование или что угодно). А далее как тебе подсказали "ПриВыводеСтроки" через УстановитьТекст() или присвоение Текст = ... . НО: учти что добавленная колонка появится в отборе, но работать он не будет, потому что в запросе пустота. А значит лучше его скрыть начисто от пользователей. Отбор.ИмяКолонки.Видимость = 0. Как то так...
Пы.сы. а то что нельзя просто добавить колонку - это баг. Вылечим в следующем году Подмигивание
  

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #156 - 17. Декабря 2010 :: 15:07
Печать  
добавляется пустая колонка, бага нет, и в отборе не появится, последний параметр ведь 0

Код
Выбрать все
	ДН.ДобавитьКолонкуДанных("ИмяКолонки", "Заголовок", "''", , , , 0);
	ДН.НоваяКолонка("ИмяКолонки"); 



я не совсем верно написал... а ildary видимо прокопипастил...
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #157 - 17. Декабря 2010 :: 16:01
Печать  
Я, конечно же скопипастил, так как Вам целиком доверяю + в черных запросах я новичек (не допер, что завершающего знака нет).

Большое спасибо за подсказку по отбору, обязательно учту. Ну а то, что свои колонки появятся в будущем - это вообще праздник, буду ждать.


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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #158 - 20. Декабря 2010 :: 10:34
Печать  
Так неловко беспокоить уважаемых людей, но опять рискну спросить - в Таб поле добавлена  колонка "Пометка", тип - число, выводится в виде флажка. При попытке изменить значение выводится ошибка: Попытка присвоить значение недоступной для записи переменной (Пометка), как это победить? Если таб поле берет данные из индексированной таблицы, то все получается (правда там надо обращаться к этой самой таблице через ТабПоле.ПоставщикДанных.ИндексированнаяТаблица.Пометка).

Само действие происходит так:

Процедура ИзменитьФлажок( ТабПоле )
     
     ТекДанные = ТабПоле.ТекущиеДанные;
       ТекДанные.Пометка = 1 - ТекДанные.Пометка;

КонецПроцедуры

и еще: хочется сделать удобные отборы - т.е. например на форме 2 даты и документы отбираются по этим датам. Сам отбор создан, но как правильнее сделать перерисовку таб поля при смене даты? Сейчас сделано вот так:

ТекОтбор = ТабПоле.Отбор.Получить( ИмяОтбора );
ТекОтбор.Значение = НовЗнач;

ТабПоле.Обновить();

Но вдруг есть более простой способ привязать отбор не к статическому значению, а к контролу на форме?




« Последняя редакция: 20. Декабря 2010 :: 12:41 - ildary »  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #159 - 20. Декабря 2010 :: 12:54
Печать  
ildary писал(а) 20. Декабря 2010 :: 10:34:
Так неловко беспокоить уважаемых людей, но опять рискну спросить -


хватит уже загогяться



ildary писал(а) 20. Декабря 2010 :: 10:34:
как это победить? Если таб поле берет данные из индексированной таблицы, то все получается (правда там надо обращаться к этой самой таблице через ТабПоле.ПоставщикДанных.ИндексированнаяТаблица.Пометка).


вот в индексированной таблице и надо менять

  
Наверх
wwwICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #160 - 20. Декабря 2010 :: 12:58
Печать  
ildary писал(а) 20. Декабря 2010 :: 10:34:
и еще: хочется сделать удобные отборы - т.е. например на форме 2 даты и документы отбираются по этим датам. Сам отбор создан, но как правильнее сделать перерисовку таб поля при смене даты? Сейчас сделано вот так:

ТекОтбор = ТабПоле.Отбор.Получить( ИмяОтбора );
ТекОтбор.Значение = НовЗнач;

ТабПоле.Обновить();

Но вдруг есть более простой способ привязать отбор не к статическому значению, а к контролу на форме?



у ПоставщикДанных.Сервис есть метод ВыполнитьНастройкуОтбора, собственно после того как окно закрылось обновляй данные
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #161 - 20. Декабря 2010 :: 13:37
Печать  
Anatol писал(а) 20. Декабря 2010 :: 12:54:
ildary писал(а) 20. Декабря 2010 :: 10:34:
как это победить? Если таб поле берет данные из индексированной таблицы, то все получается (правда там надо обращаться к этой самой таблице через ТабПоле.ПоставщикДанных.ИндексированнаяТаблица.Пометка).



вот в индексированной таблице и надо менять



Извиняюсь, что не уточнил: для таб поля из индексированной таблицы все уже работает.  Вопрос возник для таб. поле по документу.

у ПоставщикДанных.Сервис есть метод ВыполнитьНастройкуОтбора, собственно после того как окно закрылось обновляй данные

Уточняю - речь идет не об отборе через большое окно сервиса отборов. Оно, конечно работает, но хочется упростить работу пользователя и не требовать открытие этого окна. Над таб полем документов висят две даты - ограничения для таб поля. человек выбирает другую дату - и таб поле перерисовывается. Сейчас я сделал вручную и это работает (описал выше), но вдруг есть метод проще.

И еще вопросы:

1) колонки добавленные вручную, по вашему способу, вот так:

Данные.ДобавитьКолонкуДанных( "РеалДокВид", "Реал", "''", "Строка", 6, , 0 );
Данные.НоваяКолонка( "РеалДок"        );

- есть ли возможность по ним делать отборы?

2) Как выгрузить все выведенные в таб поле (ТипЗначений = Документ.Заявка ) данные в таблицу значений? Если ТипЗначений = Индексированная таблица, то все выгружается через Выгрузить(), а тут? Или хотя бы как перебрать все значения видимые значения в табполе (чтобы их вручную выгрузить)? Простого ТекущиеДанные не хватает - т.к. это одна строка, а нужны все.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #162 - 20. Декабря 2010 :: 14:50
Печать  
1. Отборы по ним делать не получится, потому что данные в запросе = ''. Их попросту нет, поэтому я и говорю что надо бы эти данные рассчитывать в самом запросе.
2. Для выгрузки есть метод, вроде "Выбрать()" называется или как то так, смотри расширение табличного поля "ПоставщикДанных.Документы".

Привязки к контролам твоей формы нет. Вроде даже в 1С 8.х такого нет Улыбка сколько работаю все вручную описываю.
Кстати почему "Получить()" а не просто через точку?
  

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #163 - 20. Декабря 2010 :: 15:24
Печать  
vandalsvq писал(а) 20. Декабря 2010 :: 14:50:
1. Отборы по ним делать не получится, потому что данные в запросе = ''. Их попросту нет, поэтому я и говорю что надо бы эти данные рассчитывать в самом запросе.
2. Для выгрузки есть метод, вроде "Выбрать()" называется или как то так, смотри расширение табличного поля "ПоставщикДанных.Документы".

Привязки к контролам твоей формы нет. Вроде даже в 1С 8.х такого нет Улыбка сколько работаю все вручную описываю.
Кстати почему "Получить()" а не просто через точку?


1. Спасибо, я так и думал, но решил уточнить.
2. Большое спасибо, не обратил внимания на этод метод - из-за названия (в 1С обычно он вызывает окно выбора одной позиции из списка).
3. Просто подумалось - было бы классно указать в качестве значения отбора не фиксированное значение, а видимый контрол в котором юзер может это значение менять, и при каждом изменении в этом контроле, автоматически бы обновлялся и  отбор, и само табличное поле. Я понимаю, что подобные плюшки треубют времени и сил и не прошу Вас беспокоиться, все уже работает и так, я просто уточнял - вдруг уже сделано Улыбка

p.s.  и вдогонку - скажите пожалуйста, есть ли возможность менять данные в табличном поле (я выше писал - про поле Пометка). Я хочу попробовать принудительно вызвать ПриВыводеСтроки  - сработает ли этот фокус?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #165 - 21. Декабря 2010 :: 07:06
Печать  
Спасибо за помощь, а в будущем такое (гибкая работа с документами и справочниками, как с ИТЗ) будет возможно?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #166 - 21. Декабря 2010 :: 11:52
Печать  
Нет.
  

Отхожу от дел. Долго и мучите