Переключение на Главную Страницу Страницы: 1 ... 4 5 [6] 7 8 ... 81 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПоставщикДанных" - обсуждения. Часть 2. (число прочтений - 399228 )
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 записан
 
Переключение на Главную Страницу Страницы: 1 ... 4 5 [6] 7 8 ... 81
ОтправитьПечать