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


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #255 - 07. Марта 2011 :: 04:51
Печать  
И снова проблема... Печаль
Не получилось разобраться с расцветкой строк по условию.

Не понимаю, откуда брать значение выводимой строки ТабличногоПоля, для проверки на условие. Или как это по другому сделать.

Что пытаюсь:

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

	Если ПустоеЗначение(ДанныеСтроки.Получить("ДатаЗакрытия")) = 0 Тогда
		ОформлениеСтроки.ЦветТекста = пПалитраЦветов.Синий;
	КонецЕсли;
		    
КонецПроцедуры 



Так не работает, видимо не тот метод получения значения... А как получить значение правильно - не получается разобраться... Печаль

ЗЫ: ДанныеСтроки.ДатаЗакрытия тоже пробовала, тоже не подходит
« Последняя редакция: 07. Марта 2011 :: 06:55 - Kateryne »  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #257 - 07. Марта 2011 :: 07:26
Печать  
1. нужно еще учитывать регион.
2. если это дополнительный реквизит, то его можно получить так:
ДанныеСтроки.Получить("ДатаЗакрытия") или ДанныеСтроки.ДатаЗакрытия
если это элемент справочника или документа, то попробуй
ДанныеСтроки.ТекущийЭлемент.ДатаЗакрытия или ДанныеСтроки.ТекущийДокумент.ДатаЗакрытия соответственно.
3. на уровне каких то смутных догадок: в прямом запросе вродеть есть какая то опция получения дат - если пусто значение даты, то дата будет 1753 год =) или что то вроде того... так что условивие проверки на пустую дату может не сработать
  
Наверх
wwwICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

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

А вот что насчет региона? Я так и не догнала, что это такое. Всю доку по FormEx пересмотрела, в гугле полазила... все равно не нахожу Печаль

UPD: Тьфу ты! Нашла таки. ТипыРегионовТП. Улыбка
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

Это одно из худших решений которое можно придумать. Улыбка
Посмотри метод "УстановитьПоляЗапроса" добавь свое поле обязательным для считывания и оно всегда будет в ДанныеСтроки. И в ТП.ТекущиеДанные.
Собственно то что ты сделал = запрос на получение значения реквизита при выводе каждой строки. В общем это зло и очень плохо.
  

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


В борьбе бобра с ослом
всегда побеждает бобро!

Сообщений: 152
Местоположение: Украина г. Кривой Рог
Зарегистрирован: 17. Августа 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #260 - 07. Марта 2011 :: 22:42
Печать  
Может плохо читал.. Но кажется таки нет этого нигде... Подскажите как сделать недоступной для редактирования колонку индексированной таблицы если я использую ПоставщикДанных.ИндексированнаяТаблица.
То что можно обрабатывать события "ПриНачалеРедактирования" я знаю. Но это "не наш метод" Улыбка "НАШ МЕТОД" - это свойство колонки "ТолькоДляЧтения" Улыбка Есть ли такое?
  
Наверх
ICQ  
IP записан
 
mvgfirst
Full Member
***
Отсутствует


В борьбе бобра с ослом
всегда побеждает бобро!

Сообщений: 152
Местоположение: Украина г. Кривой Рог
Зарегистрирован: 17. Августа 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #261 - 08. Марта 2011 :: 00:58
Печать  
И еще вопросик.
Есть у меня форма. На форме табполе выведенное через ПоставщикДанных.ИндексированнаяТаблица.
Еще на форме есть некоторые поля ввода. В которые я хочу записать итог по полю колонки.

Так вот. Как узнать что пользователь закончил уже... редактирование значение в ТП. и я могу используя метод ИТОГ("ИмяКолонки") получить итоговое значение по этой колонке с учетом уже введенных пользователем новых данных.

Другими словами к какому событию вязаться? Если я привязываюсь к "ПередОкончаниемРедактирования" то в индексированной таблице еще нет введенных данных...
Вещать же метод получения итогов на обновление формы (и дергать их каждый раз) не позволяет логика работы самой формы.. хотя если точнее ... "религия" мне этого не позволяет.

Причем несправедливость - есть событие "ПередУдалением" ... и есть событие "ПослеУдаления".
Однако же.. есть событие "ПередОкончаниемРедактирования" и нет события - "После(Окончания)Редактирования", точно так же нет события "ПослеОтменыРедактирования"....

Хотя вот здесь о таких события ТП как бы упоминается
Цитата:
2010-12-08

[+] 4517 - Добавлено событие ПриОтменеРедактированияЗначения
[+] 4518 - Добавлен ФСО в событие ПриРедактированииЗначения

==
2011-02-11

[+] 4528 - ТП: Добавить событие ПослеРедактированияЗначения
  
Наверх
ICQ  
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #262 - 09. Марта 2011 :: 11:01
Печать  
mvgfirst писал(а) 08. Марта 2011 :: 00:58:
Хотя вот здесь о таких события ТП как бы упоминается
Цитата:
2010-12-08

[+] 4517 - Добавлено событие ПриОтменеРедактированияЗначения
[+] 4518 - Добавлен ФСО в событие ПриРедактированииЗначения

==
2011-02-11

[+] 4528 - ТП: Добавить событие ПослеРедактированияЗначения

Эти события появились совсем недавно. Посмотри какая у тебя версия 1С++ и скачай последнюю. Ссылочку ты сам указал. Обрабатывай эти события и по ним обновляй свои поля ввода.
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #263 - 11. Марта 2011 :: 15:48
Печать  
vandalsvq писал(а) 07. Марта 2011 :: 11:58:
Цитата:
ДанныеСтроки.ТекущийЭлемент.ДатаЗакрытия

Это одно из худших решений которое можно придумать. Улыбка
Посмотри метод "УстановитьПоляЗапроса" добавь свое поле обязательным для считывания и оно всегда будет в ДанныеСтроки. И в ТП.ТекущиеДанные.
Собственно то что ты сделал = запрос на получение значения реквизита при выводе каждой строки. В общем это зло и очень плохо.


Ага, поняла. Не знала, что такая конструкция выдаст запрос, думала все поля справочника зачитываются сразу - ведь ДатаЗакрытия - это не дополнительное поле, а реквизит справочника.

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #264 - 13. Марта 2011 :: 09:21
Печать  
В процедура "ПриВыводеСтроки" установи текст ячейки какой тебе нужен, что-то вроде этого:
Код
Выбрать все
Если Дата = Дата01011753 Тогда
ОформлениеСтроки.Ячейки.Дата.Установитьтекст("  .  .    ");
КонецЕсли; 

  

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


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #265 - 13. Марта 2011 :: 12:06
Печать  
Ну, так я уже сделала. Я думала, потеряла метод для этого поставщика в целом. Но в принципе и так пойдет, спасибоУлыбка

С этим разобралась, теперь вот ДеревоЗначений копать начала Улыбка Скажите плиз, ПоставщикДанных.ДеревоЗначений для работы с изначально иерархическими структурами вообще предназначен?
То есть, что я имею в виду:
есть данные в таком виде:

id parentid name col1 col2
1    0        "Данные 1 уровня" "ПараметрУровня1_1", "ПараметрУровня2.1"
2    1        "Данные 2 уровня" "Параметр1_1.1", "Параметр2_1.1"
3    1        "Данные 2 уровня" "Параметр1_1.2", "Параметр2_1.2"
4    0        "Данные 1 уровня" "Параметр1_2", "Параметр2_2"
5    4        "Данные 2 уровня" "Параметр1_2.1", "Параметр2_2.1"

И надо вывести их ровно так же, без группировки (то есть, параметры 1-го уровня должны выводиться от 1-го уровня, а 2-го - от 2-го), но с возможностью свертки "плюсиком".
Что-то и так и так тыкалась с методом ЗаполнитьПоИерархии - не получается. Это потому что он и не предназначен для этого, или я что-то плохо поняла? С ручным заполнением-то понятно, как эти данные в дерево вывести, меня именно ЗаполнитьПоИерархии интересует. И для случая  с неизвестным количеством уровней.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #266 - 19. Марта 2011 :: 19:33
Печать  
Выложена новая версия 4.1.3 от 19.03.2011.

4.1.3 от 19.03.11 г.
- Добавлено новое событие «ПриИзмененииОтбора» для объектов-расширений «ПоставщикДанных.Журнал», «ПоставщикДанных.Проводки»  «ПоставщикДанных.Документы», «ПоставщикДанных.Справочник», «ПоставщикДанных.Операции», «ПоставщикДанных.Регистр». Событие вызывается в случае интерактивного изменения отбора пользователем. Событие передает имена полей, для которых изменилась настройка.
- Объект «ПоставщикДанных.ПрямойЗапрос» обновлен до версии 1.7.22 от 11.01.11 г.
- Для элементов отбора добавлен новый параметр "Доступность"

Файл брать тут - Класс "ПоставщикДанных" - обновления, релизы, новости
  

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


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

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

Краткий пример кода:

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

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

ПоставщикДанныхОтборСпр.Данные.Отбор = ПоставщикДанныхСпр.ТабличноеПоле.Отбор;
ПоставщикДанныхОтборСпр.Обновить(); 



И вуаля форма настройки отбора для пользователя уже рядом с формой списка справочника.

Обновление планируется в ближайшую неделю. Следите за новостями.
  

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


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #268 - 21. Марта 2011 :: 08:11
Печать  
А есть ли в ПоставщикДанных.Справочник какая-то возможность программно зайти в конкретную ячейку конкретной строки в режиме редактирования?
Например, делаешь метод "ДобавитьСтроку", как сделать, чтобы сразу после добавления строки одно из полей активизировалось на редактирование? Пробовала играться с разными Активизировать - что-то не вышло... Печаль

UPD: извратилась вот так:
ТабличноеПоле.ДобавитьСтроку;
ТабличноеПоле.ТекущаяКолонка = МояКолонка;
ТабличноеПоле.ИзменитьСтроку;
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

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

Есть два ПоставщикаДанных.ИндексированнаяТаблица, связаны как мастер и детейл.
Обновление связи детейла происходит на ПриАктивизацииСтроки.
Допустим в мастере есть две строки.
Удаляем одну, ПЕРВУЮ. Визуально происходит переход на вторую (которая становится первой)
НО: при таком удалении строки из мастера событие Активизации не вызывается Печаль((
Что делать, не представляю, а задача должна быть решена завтра Печаль((
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 16 17 [18] 19 20 ... 81
ОтправитьПечать