Переключение на Главную Страницу Страницы: 1 ... 24 25 [26] 27 28 ... 79 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПоставщикДанных" - обсуждения, примеры, вопросы (число прочтений - 364106 )
Bill
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Re: Класс "ПоставщикДанных"
Ответ #375 - 19. Января 2010 :: 16:38
Печать  
Мне нужно сделать текстовое поле, и заполнить его данными из запроса поставщика,  но не на основе стандарнтных полей запроса, а на основе тех, которые я сам добавил в запрос в ПриПолученииЗапроса.
  
Наверх
 
IP записан
 
Bill
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Re: Класс "ПоставщикДанных"
Ответ #376 - 19. Января 2010 :: 16:56
Печать  
В принципе я это реализовал
В ПослеСозданияФормы()
Код
Выбрать все
...
ДанныеСпр = ПоставщикДанных.Данные;
...
ТабличноеПоле = ДанныеСпр.ТабличноеПоле;

Колонки = ТабличноеПоле.Колонки;
Колонка = Колонки.Добавить("СостояниеФЛ");
Колонка.Данные = "СостояниеФЛ";
Колонка.Видимость = 0;
Колонка.Заголовок = "СостояниеФЛ";
Колонка.ИзменениеРазмера = 0;
Колонка.ИзменятьВидимость = 0;
Колонка.Параметр = 1;

Колонка = Колонки.Добавить("ДатаПриема");
Колонка.Данные = "ДатаПриема";
Колонка.Видимость = 0;
Колонка.Заголовок = "ДатаПриема";
Колонка.ИзменениеРазмера = 0;
Колонка.ИзменятьВидимость = 0;
Колонка.Параметр = 1;

Колонка = Колонки.Добавить("ДатаУвольнения");
Колонка.Данные = "ДатаУвольнения";
Колонка.Видимость = 0;
Колонка.Заголовок = "ДатаУвольнения";
Колонка.ИзменениеРазмера = 0;
Колонка.ИзменятьВидимость = 0;
Колонка.Параметр = 1;

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



А в ПоставщикДанных.Справочник
в УстановитьПоставщикаДанных()

Код
Выбрать все
...
Если ТипЗначенияСтр(Колонки) = "КолонкиТабличногоПоля" Тогда
	Для НомерКолонки = 0 По Колонки.Количество() - 1 Цикл
		Колонка = Колонки.Получить(НомерКолонки);
		//Изменения Bill
		//Было:
		//Если Колонка.Видимость = 1 Тогда
		//Стало:
		Если (ПустоеЗначение(Колонка.Данные)=0) И ((Колонка.Видимость = 1) ИЛИ (Колонка.Параметр=1)) Тогда
		//Конец изменений
			Поле = ПоставщикДанных.Поля.Добавить(Колонка.Данные);
			//Добавления Bill
			Если Колонка.Параметр=1 Тогда
				Поле.Автоудаление = 0;
			КонецЕсли;
			//Конец добавлений
			Если ТипЗначенияСтр(Поле) = "ПолеДанныхODBC" Тогда
				Поле.ТипБыстрогоПоиска = 1;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
КонецЕсли;
...
 



В итоге получилось , что в колонке "Состояние" выводятся данные, полученные на основе "СостояниеФЛ", "ДатаПриема" и "ДатаУвольнения"
Причем "СостояниеФЛ", "ДатаПриема" и "ДатаУвольнения"
я добавляю в запрос в ПриПолученииЗапроса
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Re: Класс "ПоставщикДанных"
Ответ #378 - 19. Января 2010 :: 17:18
Печать  
Да я просто думал, может штатно есть.

Еще вопрос, при быстром поиске нельзя ли сделать так, что бы в поле "Что искать" при открытии были те буквы которые начали набирать с клавиатуры?
А то не очень удобно, нужно сначала стереть текущее значение, а потом набрать новое.
  
Наверх
 
IP записан
 
ndvl
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 19. Мая 2009
Re: Класс "ПоставщикДанных"
Ответ #379 - 20. Января 2010 :: 10:52
Печать  
Нашел небольшой баг. Все началось оттого, что в справочнике не отрабатывались некоторые комбинации клавиш. Покопавшись в коде "ПоставщикДанных.Справочник" нашел это:

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

Последняя строка получает состояние клавиши Вверх, а не Вниз

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #380 - 20. Января 2010 :: 12:02
Печать  
ndvl писал(а) 20. Января 2010 :: 10:52:
Последняя строка получает состояние клавиши Вверх, а не Вниз

Выше уже отписали, но спасибо за напоминание. Все равно до выходных надо будет подождать. Какой-то период сверхнагрузок Печаль
  

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


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Re: Класс "ПоставщикДанных"
Ответ #381 - 20. Января 2010 :: 12:36
Печать  
Еще предложение:
В ПоставщикДанных.Справочник в процедуру ПриИзмененииРодителя внести дополнения:
Код
Выбрать все
...
//Добавление
ТекКолонка=ТабличноеПоле.ТекущаяКолонка;
Если ФлагРазворачивания=0 Тогда
	СтарРодитель=РодительВерхнегоУровня;
КонецЕсли;
//Конец добавлений

РодительВерхнегоУровня = ЭлементРодитель;
ТабличноеПоле.Обновить();

//Добавление
Если ФлагРазворачивания=0 Тогда
		     ТабличноеПоле.ТекущаяСтрока=СтарРодитель;
КонецЕсли;
ТабличноеПоле.ТекущаяКолонка=ТекКолонка;
//Конец добавлений
...
 

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


1C++ rocks!

Сообщений: 14
Зарегистрирован: 20. Января 2010
Re: Класс "ПоставщикДанных"
Ответ #382 - 20. Января 2010 :: 12:51
Печать  
Автор, посмотри метод "ЗагрузитьИзОбъекта" - так он называется в документации, в "Поставщике...ИндексированнаяТаблица" он значиться "ЗаполнитьИзОбъекта". Может у меня глюки Очень довольный. В том же методе ошибка (строка 535)
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

3.04.005 от 21.01.10 г.
- При установке флага «ТолькоПросмотр» = 1 у объекта «ПоставщикДанных.ТабличноеПоле» элементы справочника или формы документа открываются в режиме «ТолькоПросмотр».
- В расширениях табличного поля «ПоставщикДанных.Справочник», «ПоставщикДанных.Документы», «ПоставщикДанных.Журнал», «ПоставщикДанных.Операции» и «ПоставщикДанных.Регистр» инициализация и вызов обработки поиска осуществляется в событии «ПриБыстромПоиске». При этом введенное значение пользователем сохраняется и передается в форму.
- Новые атрибуты «СтандартныйБыстрыйПоиск» и «ВыводитьПустуюДату» объекта «ПоставщикДанных.ТабличноеПоле».
- При переходе по уровням справочника объекта «ПоставщикДанных.Справочник» табличное поле старается остаться на текущей колонке.
- Новые методы «НайтиДалее» и «НайтиНазад» в расширениях табличного поля «ПоставщикДанных.Справочник», «ПоставщикДанных.Документы», «ПоставщикДанных.Журнал», «ПоставщикДанных.Операции» и «ПоставщикДанных.Регистр». Параметры отсутствуют. Поиск осуществляется по последним значениям использованным в поиске.
- Новый атрибут «ПоискЗначения» коллекции «Реквизиты» (атрибут «Реквизиты») объекта «ПоставщикДанных.ТабличноеПоле».
- Доработана документация класса. Исправлены некоторые ошибки, добавлены описания некоторых параметров.
- Исправлены некоторые ошибки выявленные в версии 3.04.004 от 12.01.10 г.
  

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


1C++ rocks!

Сообщений: 14
Зарегистрирован: 20. Января 2010
Re: Класс "ПоставщикДанных"
Ответ #384 - 20. Января 2010 :: 21:44
Печать  
Прошу прощения, сюда ты видимо забыл заглянуть
Процедура ЗаполнитьИзОбъекта(Объект = "",Параметр = "") Экспорт
     Если ПустоеЗначение(Объект) = 1 Тогда
           Возврат;
     КонецЕсли;
     
     Если Врег(ТипЗначенияСтр(Объект)) = Врег("ПрямойЗапрос") Тогда
           ЗаполнитьИзОбъектаПрямойЗапрос(Объект);
     ИначеЕсли Врег(ТипЗначенияСтр(Объект)) = Врег("Запрос") Тогда
           ЗаполнитьИзОбъектаЗапрос(Объект);
     ИначеЕсли Врег(ТипЗначенияСтр(Объект)) = Врег("ТаблицаЗначений") Тогда
           ЗаполнитьИзОбъектаЗапрос(Объект); //Здесь наверное надо  ЗаполнитьИзОбъектаТаблицаЗначений(Объект);
     КонецЕсли;
КонецПроцедуры
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #385 - 20. Января 2010 :: 22:09
Печать  
Antonio писал(а) 20. Января 2010 :: 21:44:
Прошу прощения, сюда ты видимо забыл заглянуть

Да... Просто задачи другие стояли. Написал себе в todo на ближайшее время.  Подмигивание
  

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


1C++ rocks!

Сообщений: 14
Зарегистрирован: 20. Января 2010
Re: Класс "ПоставщикДанных"
Ответ #386 - 21. Января 2010 :: 18:48
Печать  
Сделал табличные поля в форме списка справочника "Контрагенты" как в конфигурации "Скат". Странно прямой запрос отрабатывает медленней чем банальный перебор и запихивание данных в таблицу значений и последующий вывод в табличное поле. Так и должно быть или я где-то туплю. База дбф.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #387 - 21. Января 2010 :: 19:10
Печать  
Antonio писал(а) 21. Января 2010 :: 18:48:
Сделал табличные поля в форме списка справочника "Контрагенты" как в конфигурации "Скат". Странно прямой запрос отрабатывает медленней чем банальный перебор и запихивание данных в таблицу значений и последующий вывод в табличное поле. Так и должно быть или я где-то туплю. База дбф.

Вообще то не должно быть. Работа по сети, в терминале или на локалке? Можно режим отладки посмотреть. Короче информации для рассмотрения заявки мало Подмигивание.

Пы.сы. отзовитесь DBF-щики. У кого есть проблемы?
  

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



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #388 - 22. Января 2010 :: 06:57
Печать  
Antonio писал(а) 21. Января 2010 :: 18:48:
Сделал табличные поля в форме списка справочника "Контрагенты" как в конфигурации "Скат". Странно прямой запрос отрабатывает медленней чем банальный перебор и запихивание данных в таблицу значений и последующий вывод в табличное поле. Так и должно быть или я где-то туплю. База дбф.

Не выложишь что получилось? Хочу на SQL посмотреть - а то мне хочется с ТЗ попробовать перевести на ПрямойЗапрос. Заодно посмотрю - может запросы маленько не оптимально написаны.
  
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #389 - 22. Января 2010 :: 07:33
Печать  
leshik писал(а) 22. Января 2010 :: 06:57:
Не выложишь что получилось? Хочу на SQL посмотреть - а то мне хочется с ТЗ попробовать перевести на ПрямойЗапрос. Заодно посмотрю - может запросы маленько не оптимально написаны.

В самих расширениях "ПоставщикДанных.ВидРасширения" я считаю запросы достаточно оптимальны. Используются родные индексы, строки сортировок (ключи) устанавливаются в соответствии со стандартным порядком 1С. Х.з. может где-то промазал. Но пока ни от кого жалоб о производительности не поступало.  Озадачен
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 24 25 [26] 27 28 ... 79
ОтправитьПечать