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


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #300 - 03. Апреля 2011 :: 14:29
Печать  
А как быть с такой проблемой: если код справочника текстовый, и представляет собой код вида "<число><пробел>", то ПоставщикДанные не нумерует следующее значение правильно, а возвращает максимальное значение из существующих. Естественно, ругаясь при этом на уникальность.
Это как-то будет исправлено, или поправить пока для себя?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #302 - 05. Апреля 2011 :: 12:29
Печать  
Уважаемые специалисты, подскажите пожалуйста, что может вызвать пропадание видимости кнопок на командной панели у табличного поля, созданного из Индексированной таблицы? Пробовал искать место, вызывающее проблему - почему-то пропадание происходит в момент работы со списком значений на форме, не связанным с ТП. При проведении мышкой по кнопкам - они становятся видны, Форма.Обновить() не помогает.
  
Наверх
 
IP записан
 
viddik
Junior Member
**
Отсутствует



Сообщений: 37
Зарегистрирован: 22. Октября 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #303 - 06. Апреля 2011 :: 11:50
Печать  
ildary писал(а) 05. Апреля 2011 :: 12:29:
что может вызвать пропадание видимости кнопок на командной панели у табличного поля, созданного из Индексированной таблицы?

Не знаю, что может вызывать этот глюк, у меня к примеру это происходит при ресайзе формы. Борюсь при помощи
Код
Выбрать все
Форма.КонтейнерКоманднаяПанель.Видимость(0);
Форма.КонтейнерКоманднаяПанель.Видимость(1);
Форма.КонтейнерТабличноеПоле.Видимость(0);
Форма.КонтейнерТабличноеПоле.Видимость(1);
 


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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #304 - 06. Апреля 2011 :: 12:19
Печать  
Принудительная видимость помогла, Спасибо!!!!
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #305 - 07. Апреля 2011 :: 05:23
Печать  
Подскажите пожалуйста, как работать с Отбор.УстановитьДоступныеПоля?
Задача - нужно установить в ПоставщикДанных.Справочник только часть полей как доступные пользователю для отбора, а не все.
Не могу разобраться, что надо передать в качестве параметра. Коллекцию допустимых полей, я так понимаю. Но как ее создать правильно? И что должно быть в качестве ключа и значения коллекции?
Пробовала:
Код
Выбрать все
		Коллекция = СоздатьОбъект("Коллекция");
		Коллекция.Добавить("Наименование", "Наименование");

		пмТаблПолеГруппы.Отбор.УстановитьДоступныеПоля(Коллекция);
 


Так не работает, хотя и ошибок нет.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #306 - 07. Апреля 2011 :: 10:44
Печать  
может проше удалить если свои не добавляешь?
Код
Выбрать все
Отбор = Данные.Отбор;
ПоляНастройки = Отбор.ПолучитьДоступныеПоля();
ПоляНастройки.Удалить( Какие то поля, смотри в документации);
Отбор.УстановитьДоступныеПоля(ПоляНастройки); 

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #307 - 07. Апреля 2011 :: 11:34
Печать  
А смысл вообще менять доступные поля если можно сделать Отбор.Элемент.Видимость = 0; Отбор.Элемент.Доступность = 0; ?
Доступные поля имеет смысл править при из расширении Улыбка, а при их удалении... это как то сурово Улыбка)) (пы.сы. и я не уверен, поставщик сожрет это или нет не уверен)
  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #308 - 18. Апреля 2011 :: 08:02
Печать  
Может, не в данную тему вопрос, так как касается больше управления формой, но задам, потому что возник он, когда обновил классы из архива "1Cv7_ext_TF_008.rar".
Суть такая, после обновления классов при попытке привязки на форме класс "Коллекция" ругается на код:
Код
Выбрать все
Привязка.Привязать(); 

вот так
Код
Выбрать все
Коллекция::ИнформированиеОЧтенииКлюча(Строка Ключ=Элемент, Строка Значение=Форма) : Не найдена функция обратного вызова ОбработкаСобытияОтКласса()
вирт().ОтправитьСообщениеМодулюХоз("Коллекция","ПриЧтении",Структура);
{C:\1sbases\CopyZ\SystemData\Classes\Объекты_v8\Коллекция.ert(50) }

зки ЭлементПривязки=) : Коллекция::ИнформированиеОЧтенииКлюча(Строка Ключ=Элемент, Строка Значение=Форма) : Не найдена функция обратного вызова ОбработкаСобытияОтКласса()
вирт().ОтправитьСообщениеМодулюХоз("Коллекция","ПриЧтении",Структура);
{C:\1sbases\CopyZ\SystemData\Classes\Объекты_v8\Коллекция.ert(50) }

ВрегЛево  = Врег(ЭлементПривязки.Лево.Элемент);
ert(194) }

Привязка.Привязать();
{C:\1SBASES\COPYZ\EXTFORMS\ПРОСМОТРИРЕДАКТИРОВАНИЕПЕРЕМЕЩЕНИЙ.ERT(1774)}: зки ЭлементПривязки=) : Коллекция::ИнформированиеОЧтенииКлюча(Строка Ключ=Элемент, Строка Значение=Форма) : Не найдена функция обратного вызова ОбработкаСобытияОтКласса()
вирт().ОтправитьСообщениеМодулюХоз("Коллекция","ПриЧтении",Структура);
{C:\1sbases\CopyZ\SystemData\Classes\Объекты_v8\Коллекция.ert(50) }

ВрегЛево  = Врег(ЭлементПривязки.Лево.Элемент);
ert(194) } 

 
Думаю, как-то следует заменить метод "Привязать()". Как?
  

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


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

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

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #310 - 18. Апреля 2011 :: 10:28
Печать  
vandalsvq писал(а) 18. Апреля 2011 :: 09:17:
Скорее всего проблема в старой версии класса "Коллекция". Обнови обработки с модулями классов в папке "Объекты_v8" (точно не уверен но наверное для привязки лучше взять из УправлениеФормой).

А я думал, может там какая-нибудь другая логика.... Так то в архиве версия от 01.11.10, а у меня была от 15.07.10.
  

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


1C++ rocks!

Сообщений: 2
Зарегистрирован: 19. Апреля 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #311 - 19. Апреля 2011 :: 07:15
Печать  
Добрый день. Только начал разбираться с компонентой и столкнулся с "не решаемой" моими силами проблемой. Может кто подскажет.

Поставщик данных версии: 3.06.004 21.07.2010 (Обновить не могу из-за не совместимости версий, но для интереса для моей обработки пробовал и последний. Проблема не решилась).
1с++ v:3.2.3.10

Все расписывать не буду, только то где проблема.
В моей обработке отображается список документов в ТП.
Мне нужно чтобы пользователь мог менять вид отображаемых док-в интерактивно.
Описанная ниже процедура вызывается каждый раз когда нужно изменить вид документов в ТП.
Здесь "ПарамДокумента" - АссоциативныйВектор, содержащий вид журнала для пост. данных и вид документа для присоединения запроса. Эти параметры зависят от значения вида док-та, выбранного польз. интерактивно в списке значений "Стр_ВидВСписке".

Процедура Создать_ПДЖурналДок()
     ПДЖурналДок = СоздатьОбъект("ПоставщикДанных");
     
     ПарамДокумента = вВидыДокументов.Получить(Стр_ВидВСписке);
     ПДЖурналДок.ТипЗначений = ПарамДокумента.Журнал;
     ПДЖурналДок.КонтейнерТабличногоПоля = "ТПЖурналДок_";
     ПДЖурналДок.КонтейнерКоманднойПанели = "ТПКнопЖурналаДок_";
     КоманднаяПанель=ПДЖурналДок.ТабличноеПоле.КоманднаяПанель;
     СоздатьКнопкиЖурнала(КоманднаяПанель);
     
     Данные = ПДЖурналДок.Данные;
     Данные.НоваяКолонка("Контрагент");
     ТекстСоединения = "
     |left join
     |      Справочник.Контрагенты as СпрКонтр
     |      on $"+ПарамДокумента.Запрос+".Контрагент = СпрКонтр.ID
     |";
     Данные.ДобавитьСоединениеДанных("Факс",ТекстСоединения);      
    Данные.ДобавитьКолонкуДанных("Факс","Факс","$СпрКонтр.Факсы","Строка",60,,);      
     Данные.НоваяКолонка("Факс");
     ПДЖурналДок.ТабличноеПоле.Обновить();
КонецПроцедуры

Проблема в том что:
1. при n-ом  кол-ве переключений вида док-та, в момент очередного пепереключения падает 1с.
2. Если из своего ТП я открою карточку Контрагента (в карточке тоже есть свое ТП), затем закрою ее и переключу вида документа = 100% падает 1с.
Если ошибку №2 отследить по отладчику, то доходим до строки
"ПДЖурналДок.КонтейнерТабличногоПоля = "ТПЖурналДок_";"
Эта строка через цепочку процедур доходит до класса ПоставщикДанных.ТабличноеПоле, процедура "СоздатьТабличноеПоле()" и на этапе выполнения метода "Форма.СоздатьЭлементУправления(я(),Идентификатор);" падает 1с

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

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


1C++ rocks!

Сообщений: 13
Зарегистрирован: 25. Марта 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #312 - 19. Апреля 2011 :: 10:00
Печать  
Если есть реквизит ТЗ хранящийся в строке неограниченной длины, то при использовании ПоставщикаДанных.Документы при копировании эти заполнение ТЗ не происходит, т.к. форма уже открыта. Сделал Дополнительный параметр в ПередНачаломДобавления - флаг вызова процедуры Заполнения.

Процедура СкопироватьСтроку() Экспорт
....
....
Если Информатор.МетодСуществует(КонтекстФормы,ИмяМетода) = 1 Тогда
          .......
          СтруктураПараметров.Установить("ИВП",-1);
          .....
КонецЕсли
....
Если СтруктураПараметров.Получить("ИВП") = 0 Тогда
          КонтФормы.ПослеВсего();
     КонецЕсли;      
     КонтФормы.Форма.Обновить();
КонецПроцедуры



Процедура ТПТКДПередНачаломДобавления(ТП,Копия,ФСО,ИВП)
     Если Копия = 1 Тогда
          ИВП = 0;
     КонецЕсли;      
КонецПроцедуры

Ив модуле документа есть процедура ПослеВсего() которая заполняет ТЗ из строчек неогр. длины.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #313 - 19. Апреля 2011 :: 10:25
Печать  
Lunatik писал(а) 19. Апреля 2011 :: 07:15:
Все расписывать не буду, только то где проблема.


табличное поле на форме нужно создавать только один раз, да и вообще вся инициализация делается единожды
ПДЖурналДок - должна быть переменной модуля
  
Наверх
wwwICQ  
IP записан
 
Lunatik
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 19. Апреля 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #314 - 19. Апреля 2011 :: 13:02
Печать  
Anatol писал(а) 19. Апреля 2011 :: 10:25:
да и вообще вся инициализация делается единожды
ПДЖурналДок - должна быть переменной модуля


1. ПДЖурналДок - есть в переменных модуля
2. Если инициализация делается единожды, то как можно сделать чтобы интерактивно менять ТипЗначений поставщика? В моем случае это использовать за основу другой журнал док-в на выбор пользователя.
Можно такое реализовать на базе поставщика?
Кто знает, может до установки новых параметров нужно как-то корректно очистить поставщик от предыдущих параметров?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 19 20 [21] 22 23 ... 81
ОтправитьПечать