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


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

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

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #286 - 24. Марта 2011 :: 06:45
Печать  
Пытаюсь переопределить введенное пользователем значение в ПоставщикДанных.ИндексированнаяТаблица:
Код
Выбрать все
Процедура КонтейнерТППередОкончаниемРедактирования(ТП, Колонка, ТипРегиона, Значение, ФСО)
	Если Найти(ТП.ТекущаяКолонка.Имя,"_")=0  Тогда
		ФСО = 0;
	КонецЕсли;
	Данные =  ПоставщикДанных.Данные.ПоставщикДанных.ИндексированнаяТаблица;
	ВсегоНаОставшихся = СуммаНаОставшихся(ТП, Данные, ТП.ТекущаяКолонка.Имя);
	Значение = Макс(Мин(Данные.Получить(ТП.ТекущаяСтрока,"Количество") - ВсегоНаОставшихся, Значение),0);
	Данные.Установить(ТП.ТекущаяСтрока, ТипРегиона.Имя, Значение);
	ПоставщикДанных.Обновить();
КонецПроцедуры 


По разному уже пробовал, значение не переопределяется. Что я не так делаю?
  

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #287 - 24. Марта 2011 :: 08:23
Печать  
Код
Выбрать все
Процедура КонтейнерТППередОкончаниемРедактирования(ТП, мСтрока, Колонка, ТипРегиона, Значение, ФСО)
	Сообщить(Значение);
	//Если Найти(ТП.ТекущаяКолонка.Имя,"_")=0  Тогда
		ФСО = 0;
	//КонецЕсли;
	Данные =  ПоставщикДанных.Данные.ПоставщикДанных.ИндексированнаяТаблица;
	//ВсегоНаОставшихся = СуммаНаОставшихся(ТП, Данные, ТП.ТекущаяКолонка.Имя);
	Значение = "НовоеЗначение";
	Данные.Установить(, Колонка.Имя, Значение);
	ПоставщикДанных.Обновить();
КонецПроцедуры  

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


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

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

Кстати новости:
В связи с тем что релиз 4.2.1 был неопубликован выкладываю информацию сразу о двух релизах.

4.2.2 от 24.03.11 г.
- Исправлены ошибки в расширении «ПоставщикДанных.ДеревоЗначений».
- Добавлены новые методы «УстановитьПараметрыКолонки», «ПолучитьПараметрыКолонки» для расширения «ПоставщикДанных.ДеревоЗначений».
- При добавлении, копировании и удалении строк, а также при полном обновлении (метод «Обновить») дерево пытается сохранить текущее состояние узлов.
4.2.1 от 20.03.11 г.
- Добавлено новое расширение табличного «ПоставщикДанных.Отбор». Расширение отображает объект «Объектv8.Отбор» в виде табличного поля с возможностью изменения. Поддерживается изменение и удаление строк. Добавление строк возможно только в режиме программирования.

Тестовая конфигурация обновлена. Добавлена обработка для демонстрации работы поставщика данных "Отбор" + новый документ "ДревовидноеПредставление" для демонстрации работы дерева в качестве табличной части документа.

Брать все в соответствующей теме
  

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


1C++ rocks!

Сообщений: 55
Зарегистрирован: 28. Августа 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #289 - 25. Марта 2011 :: 04:57
Печать  
Не Получается отсортировать документы по ДатаДокумента по убыванию.....
           ДанныеСправочник = ПоставщикДанныхМногострочнаяЧасть.Данные;
           ТабличноеПоле = ДанныеСправочник.ТабличноеПоле;
           ДанныеСправочник.РеквизитСортировки = "ДатаДокумента";
       ТабличноеПоле.СортироватьПоУбыванию();

хотя по другим полям получается сортировка!!!

И еще один вопрос.....если сортировка не возможна...как перейти к последней строке в таблином поле (не используя поиска последнего документа, т.е. ни так умент)


ОДним словом я хочу чтобы отобранные данные в табличном поле в первую очередь показывали последние по дате доки...
  
Наверх
 
IP записан
 
ReEnter58
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 13
Зарегистрирован: 25. Марта 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #290 - 25. Марта 2011 :: 14:24
Печать  
Извините если что не так. Я только начинаю.

ПоставщикДанных.ТабличноеПоле::ПриБыстромПоиске(Число ТипПоиска=1, Строка Данные=55, Число ФСО=0) : ПоставщикДанных.Журнал::БыстрыйПоискПоПодстроке(Строка ИмяКолонки=НомерДокумента, Строка Значение=55, ДанныеСтроки ТекущиеДанные=) : Слишком много параметров передано при вызове функции/процедуры объекта
Если ТабличноеПоле.Колонки.Индекс(ИмяКолонки,0) = -1 Тогда

это неправильно наверное Индекс - один параметр вроде
  
Наверх
 
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 634
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #291 - 26. Марта 2011 :: 18:36
Печать  
vandalsvq
Небольшое расширение дерева попросить можно? Управление Развернуть/Свернуть ветвей с клавиатуры?
Как то вот так:
Код
Выбрать все
Перем РазворотКлавиатурой Экспорт;

Процедура Конструктор()
	РазворотКлавиатурой = 0;

Процедура ПриНажатииКлавиши(КодКлавиши,Данные,Клавиатура,ФСО) Экспорт
	ФлагShift = Клавиатура.ПолучитьСостояниеКлавиши(Клавиатура.VK_SHIFT);
	ФлагCtrl = Клавиатура.ПолучитьСостояниеКлавиши(Клавиатура.VK_CONTROL);

	Если (ФлагCtrl = 1) и (ФлагShift = 0) и (КодКлавиши = 67) Тогда
		Буфер = СоздатьОбъект("БуферОбмена");
		Если ПустоеЗначение(ТабличноеПоле.ТекущаяСтрока) = 0 Тогда
			ЗначениеКопирования = ТабличноеПоле.ТекущиеДанные.Получить(ТабличноеПоле.ТекущаяКолонка.Имя);
		Иначе
			ЗначениеКопирования = "";
		КонецЕсли;
		Буфер.Установить(СокрЛП(ЗначениеКопирования));
	ИначеЕсли (ФлагShift = 0) и ((КодКлавиши = 39) или (КодКлавиши = 37)) Тогда
		ТекущиеДанные = ТабличноеПоле.ТекущиеДанные;
		Колонки = ТабличноеПоле.Колонки;
		Видимость=0;
		Для НомерКолонки = 0 По Колонки.Количество()-1 Цикл
			Колонка = Колонки.Получить(НомерКолонки);
			Видимость = Видимость+Колонка.Видимость;
		КонецЦикла;
		Если (Видимость=1) или ((ФлагCtrl=1) и (РазворотКлавиатурой=0)) или ((ФлагCtrl=0) и (РазворотКлавиатурой=1)) Тогда
			ПолныйПуть = ТекущиеДанные.ПолныйПуть;
			Если КодКлавиши = 39 Тогда
				РазвернутьУзелДерева(ПолныйПуть);
			ИначеЕсли (КодКлавиши = 37) Тогда
				СвернутьУзелДерева(ПолныйПуть);
			КонецЕсли;
			ОбновитьСтрокиТабличногоПоля();
			ФСО=0;
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры
 


Получается удобно: при одной колонке всегда включено, при количестве колонок больше 1й с Ctrl, при установке признака РазворотКлавиатурой разворот всегда, а перемещение по ячейкам влево/вправо с Ctrl.
  
Наверх
www  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #292 - 28. Марта 2011 :: 03:21
Печать  
Тут раньше уже была проблема со снятием пометки удаления, сейчас она исправлена.
Но столкнулась с другой похожей.
Если справочник иерархический и подчиненный (3-го уровня подчиненности, возможно это важно), но данные просматриваются не по владельцу (а в моем случае это важно, так как владелец не установлен не пользователем, а потому, что отбор ведется по владельцу ВСписке), то снять пометку удаления не удается, получаем:
Код
Выбрать все
Выполнить процедуру 'КоманднаяПанельПриНажатии' не удалось. Обратитесь пожалуйста к разработчикам.
ПоставщикДанных.ТабличноеПоле::КоманднаяПанельПриНажатии(Строка ИмяМетода=УдалитьСтроку, СписокЗначений Параметры=) : ПоставщикДанных.ТабличноеПоле::УдалитьСтроку() : ПоставщикДанных.Справочник::УдалитьСтроку() : Не выбран элемент!
СпрВладелец.СнятьПометкуУдаления();
чник.ert(2537) }

вирт().УдалитьСтроку();
ноеПоле.ert(536) }

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



Можно ли это как-то исправить? Или может это уже исправлено в самой последней версии поставщика? Новую пока не ставила, у меня предпоследняя.

ЗЫ: и еще. Вот при установке пометки удаления на владельце, удаляются и подчиненные записи. А при снятии пометки удаления с владельца - подчиненные записи не восстанавливаются (но это правильно, так как может записи восстанавливать не нужно), и вопроса о восстановлении их тоже нет. Это так и задумывается, и мне просто надо делать свой код для восстановления подчиненных объектов, или это баг?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #293 - 28. Марта 2011 :: 06:37
Печать  
2 Kateryne, поскольку по владельцу у вас отбор "ВСписке" то советую в событии "ПередУдалением" поставить ФСО и описать самостоятельно процедуру удаления с сопутствующими вопросами и пометками. На текущий момент у меня мало времени и гарантировать исправление не могу.
  

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


1C++ rocks!

Сообщений: 55
Зарегистрирован: 28. Августа 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #294 - 28. Марта 2011 :: 07:05
Печать  
Не Получается отсортировать документы по ДатаДокумента по убыванию.....
          ДанныеСправочник = ПоставщикДанныхМногострочнаяЧасть.Данные;
          ТабличноеПоле = ДанныеСправочник.ТабличноеПоле;
          ДанныеСправочник.РеквизитСортировки = "ДатаДокумента";
      ТабличноеПоле.СортироватьПоУбыванию();

хотя по другим полям получается сортировка!!!

И еще один вопрос.....если сортировка не возможна...как перейти к последней строке в таблином поле (не используя поиска последнего документа, т.е. ни так
умент)


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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #295 - 28. Марта 2011 :: 08:16
Печать  
2 mirvel, кажется отвечал на данный вопрос но возможно не тебе. Сортировки по убыванию в динамически формируемых списках нет и не будет в ближайшем будущем.
А вообще надо не только документацию по классу читать, но и по Табличному полю тоже не помешает. Например можно установить НачальноеПредставление и будет всегда позиционироваться на последнем или первом документе (кстати настривать это может и пользователь сам).
Вот тут читать - http://www.1cpp.ru/docum/icpp/html/TableField.html#startview
Частично проблема решается.
  

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


1C++ rocks!

Сообщений: 55
Зарегистрирован: 28. Августа 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #296 - 28. Марта 2011 :: 09:59
Печать  
vandalsvq писал(а) 28. Марта 2011 :: 08:16:
2 mirvel, кажется отвечал на данный вопрос но возможно не тебе. Сортировки по убыванию в динамически формируемых списках нет и не будет в ближайшем будущем.
А вообще надо не только документацию по классу читать, но и по Табличному полю тоже не помешает. Например можно установить НачальноеПредставление и будет всегда позиционироваться на последнем или первом документе (кстати настривать это может и пользователь сам).
Вот тут читать - http://www.1cpp.ru/docum/icpp/html/TableField.html#startview
Частично проблема решается.

Спасибо за ответ! Жаль что не сортируется...Будем тогда использовать последнее!
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #297 - 28. Марта 2011 :: 19:00
Печать  
vandalsvq писал(а) 28. Марта 2011 :: 06:37:
2 Kateryne, поскольку по владельцу у вас отбор "ВСписке" то советую в событии "ПередУдалением" поставить ФСО и описать самостоятельно процедуру удаления с сопутствующими вопросами и пометками. На текущий момент у меня мало времени и гарантировать исправление не могу.

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



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

Отбор = Данные.Отбор;
ПоляНастройки = Отбор.ПолучитьДоступныеПоля();

и открыть в отладчике ПоляНастройки.Контрагент (где Контрагент - заранее созданное значение), то при просмотре полей этого ПоляНастройки дважды показывается поле "РазрешитьИзменение" (последнее и предпредпредпоследнее).
  
Наверх
 
IP записан
 
elkpro
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 145
Зарегистрирован: 19. Мая 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #299 - 01. Апреля 2011 :: 15:06
Печать  
Может быть уже проскакивала такая проблема. Сделал форму справочника, но не хочет искать по коду. В колонке с кодом товара вбиваешь начальные символы кода и говорит, что ничего не найдено. Предлагает начать поиск с начала. Код имеет текстовое представление. По остальным текстовым полям ищет нормально.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 18 19 [20] 21 22 ... 81
ОтправитьПечать