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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Класс "ПоставщикДанных" - обсуждения. Часть 2.
26. Сентября 2010 :: 17:06
Печать  
Данная тема предназначеня для обсуждения, примеров, вопросов и т.д. по классу "ПоставщикДанных".

Релизы, новости, обновления в отдельной ветке.

Описание разработки:
Класс реализует и полностью управляет данными отображаемыми в табличном поле. При этом он управляет всеми объектами завязанными в реализации. Данными для табличного поля могут выступать: Справочник, Документы, Журнал, Регистр, Операции, ТабличнаяЧасть, ИндексированнаяТаблица, СписокЗначений.

Взаимоотношения внутри класса:
1. Объект "ПоставщикДанных". Главный объект с которого происходит инициализация разработки. Он управляет созданием табличного поля и объекта-расширения табличного поля.
2. Объект-расширение табличного поля. Объект управляющий данными отображенными в табличном поле. В задачи объекта входит: формирование источников данных, управление редактированием, поиском, первичная настройка отбора.
3. Табличное поле. Объект управляющий элементом управления отображающим данные на форме. Табличное поле поставщика данных имеет расширенную объектую модель относительно стандартного табличного поля 1С++.
4. Командная панель. Объект привязанный к табличному полю и реализующий панель кнопок для управления табличным полем. Командная панель заполняется объектом-расширением поставщика данных.

Объекты-расширения делятся на два вида: формируемые из данных БД, и формируемые из данных оперативной памяти. Справочник, Документ, Журнал, Регистр, Операции, Проводки - данные для этих расширений считываются динамически прямыми запросами к базе данных 1С. Для них доступны отборы, возможность изменения запросов. Также для данных объектов контролируются наборы прав пользователей.
ТабличнаяЧасть, ИндексированнаяТаблица, СписокЗначений - данные для этих расширений хранятся в оперативной памяти.

К классам приложена документация, написана она процентов на 60-70% (но уже более 150 страниц).

Текущая официальная версия: 4.3.1 от 12.03.12 г.

Версии внешних компонент рекомендованные к использованию:
Требования:
1С++ последняя Улыбка
1sqlite. Версия 1.0.2.3 и выше
FormEx
Yoksel



Часть 1: - тут

Поскольку иногда ветки имеют свойство ломаться, настоятельно рекомендую обсуждение продолжать вести в этой теме. Все вопросы оставшиеся при переходе прошу продублировать сюда.
« Последняя редакция: 13. Марта 2012 :: 16:24 - vandalsvq »  

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


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #1 - 27. Сентября 2010 :: 13:55
Печать  
artbear писал(а) 26. Сентября 2010 :: 08:04:
spock писал(а) 25. Сентября 2010 :: 16:18:
Прошелся Олей, наткнулся на блок перехватов, в том числе DecrRef... Я так понимаю, в нынешнем виде компоненты следить за счетчиком не надо? Тогда достаточно убрать в файле PicService.cpp в методе CPicService::GetRenderedPicture строчку ppPicture[0]->AddRef();
Ну и сессно досадный ML в конструкторе CPicService.

1. Зарегистрирован баг http://www.1cpp.ru/bugs/show_bug.cgi?id=4504
2. Исправление подтверждаю, утечка на тестовом примере исчезла.
3. Исправление внесено в репозитарий icpp

Выложил версию icpp 3.2.2.7 с исправлением

Заново собрал 3.2.2.7
Упомянутых ошибок нету.
Прошу проверить

ЗЫ перенес архив со сборкой в основную ветку
http://www.1cpp.ru/forum/YaBB.pl?num=1281717242/65#65
« Последняя редакция: 28. Сентября 2010 :: 12:26 - artbear »  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #2 - 28. Сентября 2010 :: 07:23
Печать  
artbear писал(а) 27. Сентября 2010 :: 13:55:
Заново собрал 3.2.2.7
Упомянутых ошибок нету.
Прошу проверить
ЗЫ это новый вариант 3.2.2.7, прошу закачать заново!

Проверил. На тестовом примере объекты GDI все-равно "растут", правда медленее чем в раньше, то есть чтобы система упала, раньше нужно было открытьзакрыть тестоую форму 3-4 раза, то сейчас раз 50.
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #3 - 28. Сентября 2010 :: 10:25
Печать  
zk96 писал(а) 28. Сентября 2010 :: 07:23:
artbear писал(а) 27. Сентября 2010 :: 13:55:
Заново собрал 3.2.2.7
Упомянутых ошибок нету.
Прошу проверить
ЗЫ это новый вариант 3.2.2.7, прошу закачать заново!

Проверил. На тестовом примере объекты GDI все-равно "растут", правда медленее чем в раньше, то есть чтобы система упала, раньше нужно было открытьзакрыть тестоую форму 3-4 раза, то сейчас раз 50.

Кстати, а что за форма такая "тестовая"? Я открываю просто форму документа. У меня GDI при этом пухнут, но не дохнут. Или может у меня терпения не хватило 50 раз открыть Улыбка
  
Наверх
ICQ  
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #4 - 28. Сентября 2010 :: 10:55
Печать  
avgreen писал(а) 28. Сентября 2010 :: 10:25:
Кстати, а что за форма такая "тестовая"? Я открываю просто форму документа. У меня GDI при этом пухнут, но не дохнут. Или может у меня терпения не хватило 50 раз открыть Улыбка

Тестовая вот http://www.1cpp.ru/forum/YaBB.pl?num=1248941896/1155#1168
А так, у Вас не хватило терпения. Улыбка
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #5 - 28. Сентября 2010 :: 12:27
Печать  
Выложил версию icpp 3.2.2.7 с исправлением из предыдущего поста в основной ветке
http://www.1cpp.ru/forum/YaBB.pl?num=1281717242/65#65
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #6 - 28. Сентября 2010 :: 15:02
Печать  
я не понял, не починили чтоли?
  
Наверх
ICQ  
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #7 - 28. Сентября 2010 :: 15:22
Печать  
spock писал(а) 28. Сентября 2010 :: 15:02:
я не понял, не починили чтоли?

Пока чинят.
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #8 - 29. Сентября 2010 :: 04:01
Печать  
spock писал(а) 28. Сентября 2010 :: 15:02:
я не понял, не починили чтоли?

Починил по твоему рецепту.
но некоторые проблемы все равно остались.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #9 - 29. Сентября 2010 :: 12:49
Печать  
artbear писал(а) 29. Сентября 2010 :: 04:01:
но некоторые проблемы все равно остались.

какие?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #10 - 29. Сентября 2010 :: 13:02
Печать  
spock писал(а) 29. Сентября 2010 :: 12:49:
artbear писал(а) 29. Сентября 2010 :: 04:01:
но некоторые проблемы все равно остались.

какие?

http://www.1cpp.ru/forum/YaBB.pl?num=1281717242/61#61
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #11 - 29. Сентября 2010 :: 14:28
Печать  
а из-за чего течет? Улыбка
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #12 - 29. Сентября 2010 :: 15:36
Печать  
а что за ку.ня в виде я().XXX , которая не проходит синтаксис-контроль? чувствую, что боян, но всеже
« Последняя редакция: 29. Сентября 2010 :: 16:54 - spock »  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #13 - 29. Сентября 2010 :: 16:13
Печать  
Вот на этом упрощенном примере видно, что при открытии кушается пара тысяч GDI, после закрытия все вертается взад
  

_________________IPicture_001.rar ( 4 KB | Загрузки )
Наверх
ICQ  
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #14 - 07. Октября 2010 :: 12:22
Печать  
С помощью это класса у меня организован журнал документов с фильтром по списку контрагентов (для менеджеров).

Со временем было отмечено, что в пиковые часы нагрузок на sql сервер у менеджеров стал подтормаживать вод текстовых данных (например в справочниках). Я связываю это с слишком частым опросом данных - ПериодАвтоОбновления =10. Примерно каждые 10 сек комп какбы замирает на 1-2 сек 

Сегодня увеличу этот параметр, но будет уже не так удобно работать с этим журналом. Например только, что введенный документ отобразится в журнале не сразу, а только после очередного опроса данных установленного в ПериодАвтоОбновления.

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

пробовал по событию ПередПроведением, но что-то не обновляет

Код
Выбрать все
Процедура ТабличноеПолеМногострочнойЧастиПередПроведением(ТабличноеПоле,ФСО)
	ТабличноеПоле.ОбновитьСтрокиТабличногоПоля();
КонецПроцедуры
 



как сделать , обновление при записи документа?
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #15 - 07. Октября 2010 :: 12:45
Печать  

Код
Выбрать все
Процедура ТабличноеПолеМногострочнойЧастиПередПроведением(ТабличноеПоле,ФСО)
	//ТабличноеПоле.ОбновитьСтрокиТабличногоПоля();
	ПоставщикДанных.Обновить();
КонецПроцедуры
 



проверил в отладчике -  это событие не отрабатывает (в него не заходит)
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #16 - 11. Октября 2010 :: 05:17
Печать  
Прошу ответить разработчика. Нужна помощь
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #17 - 11. Октября 2010 :: 08:08
Печать  
В общем я счас решил пока так:
1. Переменная глобального модуля: МенеджерСобытийПриЗаписиДокумента. Объект "МенеджерСобытий" из 1С++.
2. Все документы в процедуре "ПриЗаписи" посылают события через него.
3. Все журналы подписываются в данном менеджере, проверяют свои виды на вхождение и соответственно вызываются обновления табличного поля. (ОбновитьСтроки). "ПриЗакрытии" подписчик удаляется.
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #18 - 11. Октября 2010 :: 09:27
Печать  
В общем все глобальные изменения в поставщике данных окончены. Сейчас все изменения будут задокументированы, также будет добавлена документация по новым объектам. Начинается период тестирования и переноса на мою боевую базу, после чего выложу обновление вполне официально.
В общем не буду загадывать, но планирую 3.7.1 выложить на этой неделе.
  

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #19 - 11. Октября 2010 :: 09:32
Печать  
vandalsvq писал(а) 11. Октября 2010 :: 08:08:
В общем я счас решил пока так:
1. Переменная глобального модуля: МенеджерСобытийПриЗаписиДокумента. Объект "МенеджерСобытий" из 1С++.
2. Все документы в процедуре "ПриЗаписи" посылают события через него.
3. Все журналы подписываются в данном менеджере, проверяют свои виды на вхождение и соответственно вызываются обновления табличного поля. (ОбновитьСтроки). "ПриЗакрытии" подписчик удаляется.



Если можно подробнее

п.1 Добавил в глобальный модуль переменную МенеджерСобытийПриЗаписиДокумента

п.2. В ПриЗаписи() нужного документа

МенеджерСобытийПриЗаписиДокумента =1

п.3 ???
здесь подробнее , сходу не понял
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

Код
Выбрать все
Перем МенеджерСобытийПриЗаписи Экспорт;

Процедура ПриНачалеРаботыСистемы()
    /// после загрузки компонент
    МенеджерСобытийПриЗаписи = СоздатьОбъект("МенеджерСобытий");
КонецПроцедуры 



В документе:
Код
Выбрать все
Процедура ПриЗаписи()
    ФСО = 1;
    МенеджерСобытийПриЗаписи.ПослатьСобытие(Вид(),ФСО);
    Если ФСО = 0 Тогда
	  СтатусВозврата(0);
	  Возврат;
    КонецЕсли;
КонецПроцедуры 



В обработке где находится журнал документов (поставщик данных Журнал или Документ)

Код
Выбрать все
Процедура ПриОткрытии()
   иЗаписиДокумента");
КонецПроцедуры

Функция ИдентификаторТППриЗаписиДокумента(ВидДокумента,ФСО)
    Если ПустоеЗначение(ПоставщикДанных) = 1 Тогда
	  Возврат;
    КонецЕсли;
    Если СписокВидовДокументов.НайтиЗначение(ВидДокумента) = 0 Тогда
	  Возврат;
    КонецЕсли;
    ПоставщикДанных.ТабличноеПоле.ОбновитьСтроки();
КонецФункции 



Проверь названия методов у объекта "МенеджерСобытий" в соответствии с документацией. Вдруг напутал.
  

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #21 - 11. Октября 2010 :: 10:02
Печать  
Перем МенеджерСобытийПриЗаписи;

эта переменная не экспортная?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #22 - 11. Октября 2010 :: 10:08
Печать  
dimm73 писал(а) 11. Октября 2010 :: 10:02:
Перем МенеджерСобытийПриЗаписи;

эта переменная не экспортная?

Экспортная, исправился. Писал на память не копируя из конфы Улыбка.
  

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #23 - 11. Октября 2010 :: 10:13
Печать  
СписокВидовДокументов - не определена, выдает ошибку
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #24 - 11. Октября 2010 :: 10:22
Печать  
Ну конечно, это переменная которая хранит список идентификаторов видов документов, я ее сам создавал Улыбка. Так что либо удали (но тогда будет срабатывать на все доки кто вызвал, независимо от журнала), либо создай и заполни сам по метаданным
  

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #25 - 11. Октября 2010 :: 10:24
Печать  
Еще вопрос:

зачем в документе в ПриЗаписи код
Код
Выбрать все
	Если ФСО = 0 Тогда
		СтатусВозврата(0);
		Возврат;
	КонецЕсли;
 



Ведь документ в любом случае должен быть проведен ?
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #26 - 11. Октября 2010 :: 10:31
Печать  
Класссс !!!!!

Спасибо большое  Очень довольный



В предыдущем посте вопрос еще актуален
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #28 - 12. Октября 2010 :: 05:48
Печать  
Подскажите пожалуйста как реализован вывод изображения корня дерева в ДеревоЗначений. А еще лучше ткните в коде где это, а то что то не могу найти. Спасибо.
  
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #30 - 16. Октября 2010 :: 13:47
Печать  
Использую для обработки класс поставщикданных, вывожу форму списка справочника, возможно табличную часть сформировать так как мне надо, в каком методе это делать ?
« Последняя редакция: 17. Октября 2010 :: 17:08 - HeiHeShang »  
Наверх
 
IP записан
 
Botanik8888
Junior Member
**
Отсутствует


I Love 1C++

Сообщений: 37
Местоположение: РБ Минск
Зарегистрирован: 13. Декабря 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #31 - 18. Октября 2010 :: 08:19
Печать  
HeiHeShang писал(а) 16. Октября 2010 :: 13:47:
Использую для обработки класс поставщикданных, вывожу форму списка справочника, возможно табличную часть сформировать так как мне надо, в каком методе это делать ?

а как вы хотите это сделать? чего в документации не хватает для реализации задуманного?
  

И разобьются ваши мечты о чугунную задницу реальности
Наверх
ICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #32 - 18. Октября 2010 :: 11:21
Печать  
Например мне надо некоторые ячейки объеденить, а данные брать не из справочника,а из склеивать из нескольких таблиц и проще это было бы сделать объеденив индексированные таблицы чем делать это одним запросом.
  
Наверх
 
IP записан
 
Botanik8888
Junior Member
**
Отсутствует


I Love 1C++

Сообщений: 37
Местоположение: РБ Минск
Зарегистрирован: 13. Декабря 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #33 - 20. Октября 2010 :: 07:48
Печать  
Ну так есть в документации все необходимое для реализации задуманного.
можно свести в индексированную таблицу и использовать в качестве поставщика ее.
можно присоединять таблицы при определении поставщика
можно видоизменять сгенерированный запрос при получении
можно переопределять содержимое ячеек при выводе.
вариант реализации зависит от того как хранятся требуемые данные и что при этом вы хотите получить.
  

И разобьются ваши мечты о чугунную задницу реальности
Наверх
ICQ  
IP записан
 
byte.mdfab
Junior Member
**
Отсутствует


1С++ рулит

Сообщений: 35
Местоположение: Украина
Зарегистрирован: 31. Марта 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #34 - 21. Октября 2010 :: 09:06
Печать  
Спасибо большое автору за этот проект. Очень мощная вещь.
Но у меня возникла хотелка - групповые действия над объектами, т.е. если в табличном поле включить множественный выбор, то при выборе команды, например  "Установить пометку удаления" устанавливать пометку всем выбранным объектам

Еще в догонку - почему для проведенных документов в контекстном меню нет пункта Провести?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #35 - 21. Октября 2010 :: 10:20
Печать  
Групповые действия можно конечно подумать и сделать. Но не скоро. Времени не хватает ни на что.
Что касается контекстного меню, можно поменять. Но есть идея поменять принцип контекстного меню, думаю пока.
  

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



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Неопределенный тип данных
Ответ #36 - 01. Ноября 2010 :: 08:33
Печать  
Вроде проскакивало что-то на эту тему но не нашел. Как редактировать реквизит имеющий тип значения "Неопределенный" в "ПоставщикДанных.ТабличнаяЧасть"?
  
Наверх
ICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #37 - 01. Ноября 2010 :: 14:06
Печать  
Не могу найти где происходит формирование окончательного запроса. Та процедура где ставится top и колонки запроса образаются в поставщике справочника ?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #38 - 01. Ноября 2010 :: 20:24
Печать  
Это происходит в ODBCDataProvider или SQLiteDataProvider, т.е. конкретном объекте внешней компоненты отвечающей за порционное чтение данных.
  

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


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #39 - 02. Ноября 2010 :: 12:16
Печать  
vandalsvq писал(а) 01. Ноября 2010 :: 20:24:
Это происходит в ODBCDataProvider или SQLiteDataProvider, т.е. конкретном объекте внешней компоненты отвечающей за порционное чтение данных.

Это top добавляется, а где колонки удаляются лишнии, то же в провайдере ? У меня непонятная ситуация, одно поле на форме выводит, а в запросе отправляемом на сервер провайдером его нет, и данные берутся из предпоследнего поля.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #40 - 02. Ноября 2010 :: 13:37
Печать  
Неиспользуемые колонки удаляются  так
  
Наверх
wwwICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #41 - 02. Ноября 2010 :: 13:51
Печать  
Anatol писал(а) 02. Ноября 2010 :: 13:37:
Неиспользуемые колонки удаляются  так

Все бы хорошо, но поле то используется, на форме я вижу эту колонку.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #42 - 02. Ноября 2010 :: 13:53
Печать  
а оно пустое?
как поле называется?

хотя нет... добавь в конец запроса пустое поле...
  
Наверх
wwwICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #43 - 02. Ноября 2010 :: 14:25
Печать  
Не помогает пустое поле.
А как мне этим в классе поставщик данных воспользоваться АвтоУдаление / AutoDelete ?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #44 - 02. Ноября 2010 :: 14:33
Печать  
Воспользуйся методом УстановитьПоляЗапроса
  
Наверх
wwwICQ  
IP записан
 
nicesc
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Зарегистрирован: 13. Июня 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #45 - 03. Ноября 2010 :: 05:43
Печать  
Добрый день!

Изучая данный класс споткнулся на такой задаче, у меня используется в качестве поставщика справочник, всё было хорошо, пока мне не понадобилось добавить колонку с редактируемыми данными, если добавить колонки к объекту ТП, столбцы ес-но появляются, но сохранить/прочитать значение из такой колонки нет возможности, так как поставщик про неё ничего не знает. Хотел добавить колонку через запрос, не не знаю как можно прикрутить числовое значение через JOIN. Сделал через индексированную таблицу, но эффект не тот, хотелось бы через справочник, подскажите возможно ли такое?

автору большое спасибо за класс!
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #46 - 03. Ноября 2010 :: 06:09
Печать  
Так что-ли?
SELECT $Спр.Товар [Товар $Справочник.Номенклатура], 0 [РедактируемыйРеквизит $Число] FROM ...
Только зачем.
По моему, тебе проще создать ТЗ с колонками УИД и Реквизит, в которой и будешь хранить свои данные. Далее, в событии ПриВыводеСтроки в добавленной тобой колонке ищешь данные в этой ТЗ по ключевому полю и выводишь соответствующее значение реквизита. И т.д.
Можно и через временную таблицу, только после редактирования надо записать данные в нее INSERT-ом
  
Наверх
ICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #47 - 03. Ноября 2010 :: 06:26
Печать  
Anatol писал(а) 02. Ноября 2010 :: 14:33:
Воспользуйся методом УстановитьПоляЗапроса

Не нашел в доках такого метода - это чей метод ?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #48 - 03. Ноября 2010 :: 06:48
Печать  
HeiHeShang писал(а) 03. Ноября 2010 :: 06:26:
Anatol писал(а) 02. Ноября 2010 :: 14:33:
Воспользуйся методом УстановитьПоляЗапроса

Не нашел в доках такого метода - это чей метод ?


Цитата:
3.06.003 от 27.06.10 г.
•      Для объектов расширений табличного поля «ПоставщикДанных.Журнал», «ПоставщикДанных.Проводки»  «ПоставщикДанных.Документы», «ПоставщикДанных.Справочник», «ПоставщикДанных.Операции» и «ПоставщикДанных.Регистр» добавлены новые методы «ПостоянныеПоляЗапроса», «УстановитьПоляЗапроса».

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


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #49 - 03. Ноября 2010 :: 10:22
Печать  
Anatol писал(а) 03. Ноября 2010 :: 06:48:
HeiHeShang писал(а) 03. Ноября 2010 :: 06:26:
Anatol писал(а) 02. Ноября 2010 :: 14:33:
Воспользуйся методом УстановитьПоляЗапроса

Не нашел в доках такого метода - это чей метод ?


Цитата:
3.06.003 от 27.06.10 г.
•      Для объектов расширений табличного поля «ПоставщикДанных.Журнал», «ПоставщикДанных.Проводки»  «ПоставщикДанных.Документы», «ПоставщикДанных.Справочник», «ПоставщикДанных.Операции» и «ПоставщикДанных.Регистр» добавлены новые методы «ПостоянныеПоляЗапроса», «УстановитьПоляЗапроса».


У меня примерно такое выдает
Код
Выбрать все
ПоставщикДанныхМногострочнаяЧасть.УстановитьПоляЗапроса(СП);
{F:\TEST\EXTFORMS\ПОДБОРПРИХОД.ERT(150)}: Поле агрегатного объекта не обнаружено (УстановитьПоляЗапроса)
ПоставщикДанных.ТабличноеПоле::СохранитьПозициюКолонок() : Поле агрегатного объекта не обнаружено
ИТЗ.Положение = Колонка.Положение;
{F:\test\ExtForms\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(581) }

ПоставщикДанных.ТабличноеПоле::ПриУничтожении() : ПоставщикДанных.ТабличноеПоле::СохранитьПозициюКолонок() : Поле агрегатного объекта не обнаружено
ИТЗ.Положение = Колонка.Положение;
{F:\test\ExtForms\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(581) }

я().СохранитьПозициюКолонок();
{F:\test\ExtForms\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(407) }

ПоставщикДанных.ТабличноеПоле::ПриУничтожении() : ПоставщикДанных.ТабличноеПоле::СохранитьПозициюКолонок() : Поле агрегатного объекта не обнаружено
ИТЗ.Положение = Колонка.Положение;
{F:\test\ExtForms\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(581) }

я().СохранитьПозициюКолонок();
{F:\test\ExtForms\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(407) }
 

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #50 - 03. Ноября 2010 :: 11:28
Печать  
как я понимаю у тебя используется поставщикДанных.ТабличнаяЧасть ?
для нее таких методов не предусмотрено.

версия класса и версия 1cpp ?

зы оно?
  
Наверх
wwwICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #51 - 03. Ноября 2010 :: 12:23
Печать  
Anatol писал(а) 03. Ноября 2010 :: 11:28:
как я понимаю у тебя используется поставщикДанных.ТабличнаяЧасть ?
для нее таких методов не предусмотрено.

версия класса и версия 1cpp ?

зы оно?

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


Справочник
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #52 - 03. Ноября 2010 :: 12:52
Печать  
версия класса и версия 1cpp ?
  
Наверх
wwwICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #53 - 03. Ноября 2010 :: 13:07
Печать  
Anatol писал(а) 03. Ноября 2010 :: 12:52:
версия класса и версия 1cpp ?

1cpp 3, 2, 2, 0
версия класса 7
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #54 - 03. Ноября 2010 :: 13:46
Печать  
Ужас

Код
Выбрать все
Предупреждение(ПоставщикДанныхМногострочнаяЧасть.Версия); 

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


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #55 - 03. Ноября 2010 :: 14:16
Печать  
Anatol писал(а) 03. Ноября 2010 :: 13:46:
Ужас

Код
Выбрать все
Предупреждение(ПоставщикДанныхМногострочнаяЧасть.Версия); 


3.05.006 12.05.2010
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #56 - 03. Ноября 2010 :: 14:26
Печать  
HeiHeShang писал(а) 03. Ноября 2010 :: 14:16:
Anatol писал(а) 03. Ноября 2010 :: 13:46:
Ужас

Код
Выбрать все
Предупреждение(ПоставщикДанныхМногострочнаяЧасть.Версия); 


3.05.006 12.05.2010



Присмотрись и ОБНОВИСЬ
  
Наверх
wwwICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #57 - 03. Ноября 2010 :: 14:31
Печать  
Anatol писал(а) 03. Ноября 2010 :: 14:26:
HeiHeShang писал(а) 03. Ноября 2010 :: 14:16:
Anatol писал(а) 03. Ноября 2010 :: 13:46:
Ужас

Код
Выбрать все
Предупреждение(ПоставщикДанныхМногострочнаяЧасть.Версия); 


3.05.006 12.05.2010



Присмотрись и ОБНОВИСЬ

Собствено этот файл я и качал.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #58 - 03. Ноября 2010 :: 14:42
Печать  
ну блин... из любопытства скачал себе и проверил

что скачивал ты хз
  

___________001.png ( 3 KB | Загрузки )
___________001.png
Наверх
wwwICQ  
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #59 - 03. Ноября 2010 :: 14:49
Печать  
Anatol писал(а) 03. Ноября 2010 :: 14:42:
ну блин... из любопытства скачал себе и проверил

что скачивал ты хз

Да я сам проверил, один файл почему-то не заменился при копировании.
  
Наверх
 
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #60 - 06. Ноября 2010 :: 14:03
Печать  
Ни че не помогает, все равно обрезает
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #61 - 06. Ноября 2010 :: 15:22
Печать  
Озадачен  давай выкладывай свою обработку ...  
  
Наверх
wwwICQ  
IP записан
 
Петр
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 06. Августа 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #62 - 06. Ноября 2010 :: 16:32
Печать  
Хотел спросить про набор классов ЭлементыФормы, которые идут с ПоставщикомДанных. В конструкторе классов есть код

Цитата:
СистемныеОперации = СоздатьОбъект("Общее.СистемныеОперации");

На него постоянно ругается, что нет такого класса, поискал в доке, по форуму. Но что это за класс Общее так и не нашел ответа.
Где его можно взять? Нерешительный
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #63 - 06. Ноября 2010 :: 18:27
Печать  
Элементы формы используются только для класса "ЭлементыФормы.Закладки", я их переделывал, и больше нет ссылок на другие классы... хотя... в общем раньше чем в пн не смогу выложить "правильную" сборку. К сожалению ноут на работе оставил.
Напиши мне в ЛС в понедельник чтобы вдруг не забыл.
  

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


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #64 - 07. Ноября 2010 :: 02:53
Печать  
Код
Выбрать все
Процедура ИнициализацияМногострочнойЧасти()
	ПоставщикДанныхМногострочнаяЧасть = СоздатьОбъект("ПоставщикДанных");
	ПоставщикДанныхМногострочнаяЧасть.ТипЗначений = "Справочник.Номенклатура";
	ПоставщикДанныхМногострочнаяЧасть.КонтейнерТабличногоПоля = "ТабличноеПолеМногострочнойЧасти";
	ПоставщикДанныхМногострочнаяЧасть.КонтейнерКоманднойПанели = "КоманднаяПанельМногострочнойЧасти";

	ДанныеСправочник = ПоставщикДанныхМногострочнаяЧасть.Данные;
	ДанныеСправочник.КнопкаПросмотр = 1;
	ДанныеСправочник.РежимВыбора=1;
	ДанныеСправочник.СоздатьКнопкиПоУмолчанию();

	ТабличноеПоле = ДанныеСправочник.ТабличноеПоле;
	ТабличноеПоле.СтильЗаголовков = 1;
	ТабличноеПоле.СтильРамки = 1;

	ДанныеСправочник.НоваяКолонка("Код");
	ДанныеСправочник.НоваяКолонка("Артикул");
	ДанныеСправочник.НоваяКолонка("Наименование");
	Колонки = ТабличноеПоле.Колонки;
	Колонка = Колонки.Добавить("Ост");
	Колонка.Имя = "Остаток";
	Колонка.Данные = "Количество";
	Колонка.Заголовок = "Ост";
	Колонка.Ширина = 5;
	Колонка.ГоризонтальноеВыравнивание = 2;
	Колонка = Колонки.Добавить("Ед");
	Колонка.Имя = "Ед";
	Колонка.Данные = "Фасовка";
	Колонка.Заголовок = "Ед.";
	Колонка.Ширина = 4;
	Колонка.ГоризонтальноеВыравнивание = 2;
	Колонка = Колонки.Добавить("Цена");
	Колонка.Имя = "Цена";
	Колонка.Данные = "Цена";
	Колонка.Заголовок = "Цена";
	Колонка.Ширина = 5;
	Колонка.ГоризонтальноеВыравнивание = 2;
	Код = Колонки.Получить("Код");
	Код.Ширина = 7;
	Артикул = Колонки.Получить("Артикул");
	Артикул.Ширина = 8;
	Колонка = Колонки.Добавить("ОстТМЦ");
	Колонка.Ширина = 0;
	Колонка.Заголовок = "ОстТМЦ";
	Колонка.Данные = "КоличествоТМЦ";

	Колонка = Колонки.Добавить("СрокГодности");
	Колонка.Ширина = 10;
	Колонка.Заголовок = "СрокГодности";
	Колонка.Данные = "СрокГодности";

	Колонка = Колонки.Добавить("Сортировка");
	Колонка.Ширина = 10;
	Колонка.Заголовок = "Сортировка";
	Колонка.Данные = "Сортировка";

	Колонка = Колонки.Добавить("МРЦ1");
	Колонка.Ширина = 10;
	Колонка.Заголовок = "МРЦ";
	Колонка.Данные = "МРЦ";

	СП=СоздатьОбъект("СписокЗначений");
	СП.ДобавитьЗначение("Код");
	СП.ДобавитьЗначение("Артикул");
	СП.ДобавитьЗначение("СрокГодности");
	СП.ДобавитьЗначение("Сортировка");
	СП.ДобавитьЗначение("МРЦ");
	СП.ДобавитьЗначение("Цена");
	СП.ДобавитьЗначение("Фасовка");
	СП.ДобавитьЗначение("Наименование");

	ДанныеСправочник.УстановитьПоляЗапроса(СП);
	Парам = Форма.Параметр;
	Склад = Парам.Получить("Склад");
	Если ТипЗначенияСтр(Склад)="СписокЗначений" Тогда
		ДанныеСправочник = ПоставщикДанныхМногострочнаяЧасть.Данные;
		ТабличноеПоле = ДанныеСправочник.ТабличноеПоле;
		Колонки = ТабличноеПоле.Колонки;

		Если Колонки.Индекс("Склад")=-1 Тогда

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

		КонецЕсли;
	КонецЕсли;
	ОтборНаименование = ТабличноеПоле.Отбор.Наименование;
	ОтборНаименование.Использование = 0;
	ОтборНаименование.ВидСравнения = ВидыСравнения.НачинаетсяС;
	ОтборНаименование.Значение = "";
	ПоставщикДанныхМногострочнаяЧасть.Обновить();
КонецПроцедуры // ИнициализацияМногострочнойЧасти

 

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


1C++ rocks!

Сообщений: 9
Зарегистрирован: 06. Августа 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #65 - 08. Ноября 2010 :: 10:28
Печать  
А есть ли планы в классы ПоставщикаДанных добавить класс, реализующий работу с много табличным документом? Тогда получиться законченная библиотека решающая большинство проблем семерки.?
  
Наверх
 
IP записан
 
mirvel
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 55
Зарегистрирован: 28. Августа 2010
Братцы подскажите как отсортировать отображаемые данные!!!
Ответ #66 - 12. Ноября 2010 :: 16:39
Печать  
Сортирова отлично работает....достаточно кликнуть на заголовок колонки......и программно отлично получается...................НО ТОЛЬКО не для тех полей у которых значения периодические (числового) типа......
ЧТО ДЕЛАТЬ?
Плачущий
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #67 - 12. Ноября 2010 :: 17:50
Печать  
Дабы в ЛС все не обсуждать отвечу тут.
Сортировка возможна только по реквизитам справочника с признаком "Сортировка = 1" установленным в метаданных.
Для реквизитов с типом "Строка" неограниченной длины, и периодических реквизитов данный признак всегда равен 0, соответственно сортировка по ним невозможна.
Выход по сути только один: ПрямойЗапрос + ПоставщикДанных.ИндексированнаяТаблица.
Реализация сортировки по периодическим реквизитам в виде динамического чтения с базы данных, в свете особенностей работы 1С и ТП, просто нецелесообразна с точки зрения оптимальности работы.
  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #68 - 13. Ноября 2010 :: 04:51
Печать  
При попытке посмотреть движения документа выдает из ПоставщикДанных.Журнал:
"Результат = ПрямойЗапрос.Выполнить(,ТекстЗапроса);
{C:\КЛАССЫ\POST\ПОСТАВЩИКДАННЫХ.ДВИЖЕНИЯДОКУМЕНТА.ERT(337)}: ПоставщикДанных.ПрямойЗапрос::Выполнить(Строка ТипОбъекта=ИндексированнаяТаблица, Строка ТекстВыполнения=select
     case when ra.debkred = 0 then '+' else '-' end as ВидДвижения
     
     ,$ra.Фирма as [Фирма $Справочник.Фирмы]
     ,$ra.Номенклатура as [Номенклатура $Справочник.Номенклатура]
     ,$ra.Склад as [Склад $Справочник.Склады]
     ,$ra.ЦенаПрод as [ЦенаПрод $Число]
     ,$ra.Количество as [Количество $Число]
     ,$ra.Внутреннее as [Внутреннее $Число]
     ,$ra.ВидДвижения as [ВидДвижения $Число]
from Регистр.ОстаткиТМЦ as ra $nolock
where iddoc = '  CNYH022', Число БезПодготовки=0) : Колонка ВидДвижения уже есть!
ЗапросODBC.ВыполнитьИнструкцию(ТекстЗапроса,ПолучательЗапроса,1);
{C:\Классы\Post\ПоставщикДанных.ПрямойЗапрос.ert(12551) }"
Этот результат при использовании icpp ver 3.2.3.2, 3.2.1.26, 3.2.2.7 и 3.2.1.10.
Версия класса: 3.06.004 от 21.07.10 г.
  

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


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

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

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #70 - 13. Ноября 2010 :: 05:29
Печать  
vandalsvq писал(а) 13. Ноября 2010 :: 05:23:
Чего-то я не подумал что у пользователя может быть измерение, ресурс или реквизит с идентификатором "ВидДвижения" Улыбка. Исправимся.

Спасибо, vandalsvq! Тут же понял, как поправить! Улыбка
А Вы не могли бы какую-нибудь подборку примеров по работе с поставщиками данных подкинуть, ато пособирал по двум топикам и у меня не всё взлетает.
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #71 - 13. Ноября 2010 :: 06:10
Печать  
К сожалению на текущий момент нет возможности заняться данным вопросом. Времени просто нет.
Я не берусь обещать, но вполне возможно появление версии 4.1.1 уже в эти выходные. Из изменений можно посмотреть в теме про обновления и релизы, в предпоследнем сообщении перечислены (зачеркнутым шрифтом) все внесенные изменения. Которых на самом деле очень много, и часть из них к сожалению частично побили обратную совместимость.
Пы.сы. версия 4.1.1 будет адаптирована под icpp 3.2.3.х и выше.
  

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


1C++ rocks!

Сообщений: 3
Зарегистрирован: 16. Ноября 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #72 - 16. Ноября 2010 :: 04:22
Печать  
Подскажите, почему не верно отображается значение периодического реквизита справочника в табличном поле, если дата значения ревизита равна Рабочей дате?
Например, для числового типа, значение реквизита на '15.11.10' задано 30, а на '16.11.10' задано 50, Рабочая дата '16.11.10' - В табличном поле отображается 30.

Пробовал на примере "Справочник Контрагенты.ert", который прилагался к классу, и на типовой Бухгалтерии, только добавил в справочник Контрагенты периодический реквизит.

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 записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #73 - 18. Ноября 2010 :: 14:50
Печать  
Есть несколько предложений по "необратимому улучшению" класса Улыбка
  • В связи с обсуждением особенностей формата в 1С Табличное поле - формат колонки было-бы неплохо переделать форматы колонок в ТП (пока встретил в классе ПоставщикДанных.ИндексированнаяТаблица, но может и еще где есть) к виду
    Код
    Выбрать все
    Колонка.Формат = "Ч"+СокрЛП(Длина+Цел((Длина-Точность-1)/3))+"."+СокрЛП(Точность)+", "; 
    
    
    А то получается что не видно всего введенного значения
  • Никто так ничего и не ответил на вопрос "Как редактировать реквизит имеющий тип значения "Неопределенный" в ПоставщикДанных.ТабличнаяЧасть". Посему решал сам следующим образом - добавил в класс ПоставщикДанных.ТабличнаяЧасть в секцию МЕТОДЫ ТАБЛИЧНОЙ ЧАСТИ ДОКУМЕНТА следующую процедуру
    Код
    Выбрать все
    Процедура НазначитьТип(Идентификатор,ТипВид,Длина=0,Точность=0) Экспорт
    	Если СтруктураДанных.НайтиКлюч(Идентификатор,0) = -1 Тогда
    		Возврат;
    	КонецЕсли;
    	КонтекстФормы.НазначитьТип(Идентификатор,ТипВид,Длина,Точность); // если реквизит не "неопределенного" вида - сразу получим исключение
    	ВложеннаяСтруктура = СтруктураДанных.Получить(Идентификатор);
    	ВложеннаяСтруктура.ТипВид = ТипВид;
    	лПозРазделителя = Найти(ТипВид, ".");
    	Если лПозРазделителя <> 0 Тогда
    		ВложеннаяСтруктура.Тип = Лев(ТипВид, лПозРазделителя-1);
    		ВложеннаяСтруктура.Вид = Сред(ТипВид, лПозРазделителя+1);
    	Иначе
    		ВложеннаяСтруктура.Тип = ТипВид;
    		ВложеннаяСтруктура.Вид = "";
    	КонецЕсли;
    	ВложеннаяСтруктура.Длина = Длина;
    	ВложеннаяСтруктура.Точность = Точность;
    КонецПроцедуры 
    
    

    и вызываю ее из модуля документа следующим образом
    Код
    Выбрать все
    	ПоставщикДанныхТабличнаяЧасть.Данные.НазначитьТип("СубД"+Строка(НСуб), Строка(СчД.ВидСубконто(НСуб).ТипСубконто()));
     
    
    

    Для ПоставщикДанных.Справочник можно поступить подобным-же образом
  • В процедуру ПриЗаписи_ТипЗначений базового класса ПоставщикДанных в самый конец длинного условия по ТипуЗначений добавить следующую конструкцию
    Код
    Выбрать все
    	Иначе
    		Если ПустоеЗначение(ПоставщикДанных) = 1 Тогда
    			Попытка
    				ПоставщикДанных = СоздатьОбъект("ПоставщикДанных."+СокрЛП(ТипЗначений));
    				ПоставщикДанных.КонтекстФормы = КонтекстФормы;
    			Исключение
    			КонецПопытки;
    		КонецЕсли;
     
    
    

    что позволит подключать свои унаследованные или новые классы к ПоставщикуДанных не меняя  его кода. А то сейчас приходится корректировать базовые классы если нужно добавить какой-то недостающий функционал.

Как общественность а главное Автор смотрят на подобные изменения?
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #74 - 18. Ноября 2010 :: 15:05
Печать  
avgreen писал(а) 18. Ноября 2010 :: 14:50:
Есть несколько предложений по "необратимому улучшению" класса Улыбка
  • В связи с обсуждением особенностей формата в 1С Табличное поле - формат колонки было-бы неплохо переделать форматы колонок в ТП (пока встретил в классе ПоставщикДанных.ИндексированнаяТаблица, но может и еще где есть) к виду
    Код
    Выбрать все
    Колонка.Формат = "Ч"+СокрЛП(Длина+Цел((Длина-Точность-1)/3))+"."+СокрЛП(Точность)+", "; 
    
    
    А то получается что не видно всего введенного значения

А с чего вдруг такая формула? Она заточено только под твой формат. В общем, я против.
  
Наверх
 
IP записан
 
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 записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #90 - 03. Декабря 2010 :: 05:37
Печать  
На реквизиты справочника (по метаданным) + по колонкам добавленным методом "ДобавитьКолонкуДанных" отборы не надо добавлять, они создаются автоматически. Т.е. в твоем случае просто пиши:
Код
Выбрать все
Отбор = ПоставщикДанных.ТабличноеПоле.Отбор;
ОтборПоФамилии = Отбор.Фамилия;
ОтборПоФамилии.Использование = 1;
ОтборПоФамилии.ВидСравнения = "НачинаетсяС";
ОтборПоФамилии.Значение = "Иванов";
ПоставщикДанных.Обновить(); 



А версия указана в ПоставщикДанных.Версия Улыбка
  

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


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #91 - 06. Декабря 2010 :: 03:50
Печать  
Спасибо... с отборами вроде примерно разобралась...
Но - сейчас настал случай всех злее...
Дело в том, что я пытаюсь разобраться (и доработать) в устройстве конфы, написанной с использованием вашего класса. Класс замечательный - но разбирательство идет увы, тяжело. Особенно еще и потому, что с 1С++ практически не работала раньше.
Итак, на одной и той же машине (чистая виртуалка 2003 Server + 2005 MS SQL):
1) Есть БД на которой вроде бы почти все работает. Но - на ней используется очень старая, еще 2009 года библиотека. И есть странный глюк с обновлением формы (по нему позже отдельно, похоже спрошу, не суть). БД загружалась с архива мной, но не настраивалась особо.
2) Есть ваш пример, md. Загружаю его, загружаю с инета требуемые библиотеки, рекомендованные по инструкции версии  - работает.
3) И есть БД, которую создаю я. Создала БД, код загрузки библиотек  скопировала с вашего примера в главный модуль. Папку с классами и папку с dll поместила в папку ИБ (скопировала с вашего примера и доложила библиотек - их состав такой же как на БД №2 с вашего примера).
Компоненты загружаются (в частности, появляются закладки FormEx и 1С++). Но код загрузки ПоставщикаДанных (практически копия вашего) не работает. Печаль
Получаю
Код
Выбрать все
{Справочник.Тест.Форма.Модуль(12)}: Неудачная попытка создания объекта (ПоставщикДанных) 



Такое ощущение, что классы которые я положила в папку, не видимы.
Уже все перепроверила - все чуть ли не идентично в 2 и 3 случаях, но  в случае 3 - не работает Печаль
Может вы меня на мысль какую наведете... Печаль
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #92 - 06. Декабря 2010 :: 05:41
Печать  
Навожу на мысль: defcls.prm
  
Наверх
ICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #93 - 06. Декабря 2010 :: 06:07
Печать  
ага, про него знаю
но во всех трех случаях - это один и тот же файл, лежащий в одном и том же месте... Печаль
правда, по инструкции к 1C++ он должен лежать, как я поняла, в каталоге ИБ. А лежит в КаталогИБ\SystemData, что меня несколько смущает. Но ведь в двух-то случаях из трех работает...

UPD: ага! а вот про то, что он может быть не только файлом, но и обработкой я не знала - в другой теме навели...
действительно, я ее как обработку не создавала, а в двух остальных БД она есть...
Вопрос решен, спасибо! Улыбка
  
Наверх
 
IP записан
 
sashas09
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Местоположение: Киев
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #94 - 06. Декабря 2010 :: 16:16
Печать  
День добрый

Вопрос по поставщикуДанных

Почему "отборПоЗначениюВТекущейКолонке" снимает уже существующий отбор?


и у меня что-то ничего не получается с поставщикомДанных.регистр

можно привести минимальный функциональный пример показа списка движений регистра?

  
Наверх
ICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #95 - 07. Декабря 2010 :: 01:13
Печать  
Еще один вопрос. Никак не могу побороть следующую проблему:
есть форма, на форму кладу ПолеВвода и кнопку, сбрасывающую значение этого поля.
Если на форме не подключен ПоставщикДанных, то кнопка сбрасывает значение, и в переменной, и визуально.
Если на форму подключить ПоставщикДанных, сброс значения не работает. Точнее, работает, но сбрасывает значение только в переменной, а визуально данные на форме не обновляются до тех пор, пока пользователь не введет значение в какое-нибудь другое ПолеВвода.
(В переменной - это имеется ввиду, что если ПолеВвода называется рфПоле, то при нажатии на форме кнопки с формулой Сообщить(рфПоле), данные выводятся корректные, но на самой форме они видны старые)
Форма.Обновить не помогает... Печаль Не подскажете, как с этим быть?

(для реальной задачи надо несколько полей и одну кнопку, сбрасывающую все значения, но не работает и на одном поле и кнопке с формулой вида рфПоле="").

UPD: нашла в каких случаях оно работает. Работает, если на форме списка многострочная часть находится в границах формы, даже если она уменьшена до миллиметров. Если эту часть унести за границы формы - обновление не работает. Сейчас попробую ее просто скрыть...

UPD2: если ее скрыть, то обновление тоже не работает. Печаль То есть обновление работает только в том случае, если на форме многострочная часть есть и видима. Как-то с этим можно побороться? Сброс значений нужен позарез, но и многострочную часть не хочется оставлять, пусть даже крохотную
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #96 - 07. Декабря 2010 :: 04:05
Печать  
Другая проблема, посерьезнее.
При закрытии окна с формой, имеющей ПоставщикДанных, вылетает 1С с ошибкой.
Если  согласиться запустить дебаггер в нем отображается такое:
'1cv7s.exe': Loaded 'C:\WINDOWS\system32\vbscript.dll', No symbols loaded.
Unhandled exception at 0x02cb5708 in 1cv7s.exe: 0xC0000005: Access violation.
First-chance exception at 0x02cb5708 in 1cv7s.exe: 0xC0000005: Access violation.
The thread 'Win32 Thread' (0xc98) has exited with code 0 (0x0).
Unhandled exception at 0x02cb5708 in 1cv7s.exe: 0xC0000005: Access violation.
и так далее Access violation лезут, я прерываю.

1С НЕ вылетает, если:
1) закомментировать строку //пПоставщикДанных.КонтейнерКоманднойПанели = "кнКоманднаяПанель";
2) На открывшейся форме через кнопку командной панели хотя бы раз до закрытия открыть окно с Отбором (там где настройка быстрого отбора). Возможно нажатие других кнопок тоже помогает, но не всех точно, например нажатие Обновить не помогает.

Офис установлен (2003-й).

Текст модуля прилагаю.
Версии: 1С  SQL версия 7.70.27
1С++ 3.2.1.10 (тот что прилагался к ПоставщикДанных) UPD: Версия 1С++ не та, что выше написана, а 3.2.3.2 (это я с другой базы списала). Проблема по прежнему актуальна, с версией 3.2.3.2 так же все выглядит
FormEx 2.05.101 beta (может дело в ней? но не нашла где взять 2.05.92, на сайте только либо старее, либо бета нашла)
ПоставщикДанных последний, скачан с этого форума (UPD: Версия показывает 4.1.1 01.11.2010)


« Последняя редакция: 07. Декабря 2010 :: 18:59 - Kateryne »  

TestCrash.txt ( 1 KB | Загрузки )
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #97 - 07. Декабря 2010 :: 17:01
Печать  
Интересно... Ошибка из предыдущего поста (с вылетом при закрытии формы) возникает, если код писать в модуле ФормыСписка в справочнике.
Если тот же самый код написать на форме Обработки, то все работает (код абсолютно идентичен, 100%, дизайн формы тоже скопирован, нет только многострочной части на форме).
И на форме карточки справочника - тоже работает вроде (код немного отличается, но все же похож очень сильно)
Так и должно быть? То есть - работает ли класс с формами списка? Или где-то какой-то нюанс есть, который я упускаю? Такое ощущение что проблема как-то связана с многострочной частью.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #98 - 07. Декабря 2010 :: 19:01
Печать  
Подготовь тестовую конфигурацию, чтоб другие у себя смогли посмотреть
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #99 - 07. Декабря 2010 :: 22:27
Печать  
Я нашла причину вылетов! Уф... попарилась.
Не знаю только теперь, как ее трактовать.

Дело было в файле 1Cv7.CFG, лежащем в папке пользователя.
А точнее, в параметре UserValuesProfile
При значениях UserValuesProfile определенного вида - происходил вылет.
Почистила настройки, создала файл снова - вылетов нет! Что не может не радовать.
Однако, нужна ваша консультация. По идее этот файл с настройками формировался не вручную, а системой.
Можете объяснить почему происходил вылет, и кто тут виноват - 1С сформировала файл с настройками некорректного формата, или формат настроек корректен, но не может обработаться ПоставщикомДанных?

Выкладываю файл с конфигурацией, и файлы с настройками - с вылетом и без.

Файл с настройками и вылетом:
  

crash_1Cv7_CFG.txt ( 3 KB | Загрузки )
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

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

notcrash_1Cv7_CFG.txt ( 3 KB | Загрузки )
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #101 - 07. Декабря 2010 :: 22:30
Печать  
конфигурация
  

1Cv7_010.MD ( 91 KB | Загрузки )
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

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

А вот предыдущий вопрос про обновление данных на форме при сбросе поля - по прежнему актуален.

Пример конфигурации, которую я выложила, как раз и включает единственный объект - справочник Тест, на форме Списка которого проявляется проблема с обновлением данных.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #103 - 08. Декабря 2010 :: 06:37
Печать  
Kateryne писал(а) 07. Декабря 2010 :: 22:27:
Я нашла причину вылетов!
....
А точнее, в параметре UserValuesProfile


сори за оффтопик, но как ВЫ до такого дошли?  Ужас
  
Наверх
wwwICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #104 - 08. Декабря 2010 :: 06:51
Печать  
Стала делать тестовый пример, как попросили выше. Перенесла с другой базы в пустую базу класс, который у меня не работал - а он, сволочь такая, заработал Улыбка
Начала разбираться, чем отличается база 1 от базы 2. Глобальник один, класс один, библиотеки одинаковые, папка с exe 1с одинаковая - значит отличие в самой БД или пользователях. Попробовала создать нового пользователя - заработало и в моей базе.
А дальше уже вопрос времени - стала удалять по одному файлу с уже существующего юзера. Заработало на удалении 1Cv7.CFG.
Скопировала его, создался дефолтный. Через текстовый Compare (сравнение текстов) начала сравнивать, чем они отличаются, и постепенно по одному параметру приводить файлы в соответствие друг другу. У нового пользователя сломалось все на приведении в соответсвие параметра массива значений UserValuesProfile Улыбка
Попарилась, конечно...
  
Наверх
 
IP записан
 
Kondarat
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 83
Зарегистрирован: 21. Декабря 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #105 - 08. Декабря 2010 :: 09:04
Печать  
Пытаюсь создать журнал документов
Код
Выбрать все
	ПоставщикДанныхЖурнал = СоздатьОбъект("ПоставщикДанных.Журнал");
	ПоставщикДанныхЖурнал.ВидЖурнала = "ДокументыПоПокупателям";

	ПоставщикДанныхЖурнал.КонтейнерТабличногоПоля = "ТабличноеПолеМногострочнойЧасти";
	ПоставщикДанныхЖурнал.КонтейнерКоманднойПанели = "КоманднаяПанельМногострочнойЧасти";

	ДанныеЖурнала = ПоставщикДанныхЖурнал.Данные;
	ДанныеЖурнала.СоздатьКнопкиПоУмолчанию();

	ТабличноеПоле = ДанныеЖурнала.ТабличноеПоле;
	ТабличноеПоле.СтильЗаголовков = 1;
	ТабличноеПоле.СтильРамки = 1;
 



При этом куча ошибок:
ПоставщикДанныхЖурнал.ВидЖурнала = "ДокументыПоПокупателям";
{D:\ЖУРНАЛЖЛКУМЕНТОВ.ERT(20)}: ПоставщикДанных.Журнал::ПриЗаписи_ВидЖурнала(Строка Параметр=ДокументыПоПокупателям) : ПоставщикДанных.ТабличноеПоле::Обновить() : ПоставщикДанных.Журнал::СформироватьТекстЗапросаСписка() : Информатор::МетодСуществует - первым параметром нужно передать контекст
Если Информатор.МетодСуществует(КонтекстФормы,ИмяМетода) = 1 Тогда
{D:\1C_BASE\DG\Classes\ПоставщикДанных\ПоставщикДанных.Журнал.ert(352) }

вирт().Обновить();
{D:\1C_BASE\DG\Classes\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(588) }

ТабличноеПоле.Обновить();
{D:\1C_BASE\DG\Classes\ПоставщикДанных\ПоставщикДанных.Журнал.ert(1158) }

Версия класса 4.1.1 от 01.11.10 г.
1С++ - 3.2.2.3

Где пробел в ДНК? Пните кто-нить...
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #106 - 08. Декабря 2010 :: 09:52
Печать  
Код
Выбрать все
ПоставщикДанныхЖурнал = СоздатьОбъект("ПоставщикДанных");
ПоставщикДанныхЖурнал.ТипЗначений = "Журнал.ДокументыПоПокупателям";
... 

  
Наверх
wwwICQ  
IP записан
 
Kondarat
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 83
Зарегистрирован: 21. Декабря 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #107 - 08. Декабря 2010 :: 12:30
Печать  
Anatol писал(а) 08. Декабря 2010 :: 09:52:
Код
Выбрать все
ПоставщикДанныхЖурнал = СоздатьОбъект("ПоставщикДанных");
ПоставщикДанныхЖурнал.ТипЗначений = "Журнал.ДокументыПоПокупателям";
... 




Ага. Догадался. Но что-то ему не нравится документ ЗаявкаПокупателя

ПоставщикДанныхЖурнал.ТипЗначений = "Журнал.ДокументыПоПокупателям";
{D:\ЖУРНАЛЖЛКУМЕНТОВ.ERT(37)}: ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=Журнал.ДокументыПоПокупателям) : ПоставщикДанных.Журнал::ПриЗаписи_ВидЖурнала(Строка Параметр=ДокументыПоПокупателям) : ПоставщикДанных.ТабличноеПоле::Обновить() : ПоставщикДанных.Журнал::УстановитьПоставщикаДанных() : no such column: $ДокЗаявкаПокупателя.Валюта
ПоставщикДанных.УстановитьТекстЗапроса(ТекстЗапроса,"[КлючПорядка]","[ТекущийДокумент :Документ]");
{D:\1C_BASE\DG\Classes\ПоставщикДанных\ПоставщикДанных.Журнал.ert(1041) }
  
Наверх
 
IP записан
 
BlueWind
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 13
Местоположение: Тирасполь
Зарегистрирован: 28. Ноября 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #108 - 08. Декабря 2010 :: 21:49
Печать  
1c++ 3.2.3.1
FormEx 2.0.5.101
1sqlite 1.0.2.3
ПоставщикДанных  4.1.1 01.11.2010 (из сборки 4.1.1 от 25.11.10)
ПоставщикДанных.Справочник из этой же сборки

В табличном поле - список элементов справочника.
Код
Выбрать все
Перем ПоставщикДанных;
//______________________________________________________________________
Процедура ПослеОткрытия()

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

	ПоставщикДанных_Справочник = ПоставщикДанных.Данные;
	ПоставщикДанных_Справочник.СоздатьКнопкиПоУмолчанию();

	ПоставщикДанных_Справочник.НоваяКолонка("Код");
	ПоставщикДанных_Справочник.НоваяКолонка("Наименование");
	ПоставщикДанных_Справочник.НоваяКолонка("ЕдиницаИзмерения",0,1);
	ПоставщикДанных_Справочник.НоваяКолонка("ШтрихКод",0,1);

	ПоставщикДанных_Справочник.АвтоОбновление = 1;
	ПоставщикДанных_Справочник.ПериодАвтоОбновления = 10;

	ПоставщикДанных.Обновить();
	//Сообщить("ПД: "+ПоставщикДанных.Версия);
КонецПроцедуры

 



1. Пометка на удаление (без вопросов для группы, но) свое отрабатывает. При снятии пометки на удаление с элемента, или с группы - клавишей, через контекстное меню или по кнопке - ошибка:

Код
Выбрать все
ПоставщикДанных.Справочник::УдалитьСтроку() : Значение не представляет агрегатный объект
ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.Справочник.ert(2543) }

ПоставщикДанных.ТабличноеПоле::УдалитьСтроку() : ПоставщикДанных.Справочник::УдалитьСтроку() : Значение не представляет агрегатный объект
ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.Справочник.ert(2543) }

вирт().УдалитьСтроку();
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(536) }

ПоставщикДанных.ТабличноеПоле::ПриНажатииКлавиши(Число КодКлавиши=46, Число Данные=22216705, 1cpp.Клавиатура Клавиатура=, Число ФСО=1) : ПоставщикДанных.ТабличноеПоле::УдалитьСтроку() : ПоставщикДанных.Справочник::УдалитьСтроку() : Значение не представляет агрегатный объект
ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.Справочник.ert(2543) }

вирт().УдалитьСтроку();
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(536) }

я().УдалитьСтроку();
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(478) }

ПоставщикДанных.ТабличноеПоле::ПриНажатииКлавиши(Число КодКлавиши=46, Число Данные=22216705, 1cpp.Клавиатура Клавиатура=, Число ФСО=1) : ПоставщикДанных.ТабличноеПоле::УдалитьСтроку() : ПоставщикДанных.Справочник::УдалитьСтроку() : Значение не представляет агрегатный объект
ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.Справочник.ert(2543) }

вирт().УдалитьСтроку();
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(536) }

я().УдалитьСтроку();
{D:\Work\Ремедиум\Центр SQL\КОП\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(478) }

 



2. При выборе действия "Переместить в группу" (никакие отборы не установлены):

Код
Выбрать все
Если НастройкаОтбора.Идентификатор = "ЭтоГруппа" Тогда
{D:\WORK\РЕМЕДИУМ\ЦЕНТР SQL\КОП\ПОСТАВЩИКДАННЫХ\ПОСТАВЩИКДАННЫХ.ВЫБОРГРУППЫ.ERT(24)}: Поле агрегатного объекта не обнаружено (Идентификатор)
 


« Последняя редакция: 08. Декабря 2010 :: 23:41 - BlueWind »  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #110 - 09. Декабря 2010 :: 07:38
Печать  
2 Kondarat скорей всего соответствующий реквизит не добавлен в графу журнала по ДокументыПоПокупателям
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #111 - 10. Декабря 2010 :: 11:03
Печать  
Уважаемые специалисты, подскажите пожалуйста новичку, правильный порядок создания отбора? Поставщик даных и ТП созданы, после чего 

пдДок = СоздатьОбъект( "ПоставщикДанных" );
...
Отбор  = пдДок.ТабличноеПоле.Отбор;
ЭлементОтбора = Отбор.Добавить( "Сумма", 1 );

И в последней строке, при добавлении происходит проверка наличия поля в ПоляНастройки. А отладчик показывает, что у ПоляНастройки поле Коллекция = "Ошибка в выражении!". Получается, что сначала надо как-то инициализировать ПоляНастройки, но как?

Применяются самые свежие версии 1С++ и Табличного Поля.
В документации и интернете примеров не нашел,  по форуму искал и тоже не нашел...
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #112 - 10. Декабря 2010 :: 11:24
Печать  
закоментировано: как было на 3.хх версии

Код
Выбрать все
	СписокФирмОграничения = СоздатьОбъект("СписокЗначений");
	Если ПустоеЗначение(глПользователь.Подразделение) = 0 Тогда

	 	СписокФирмОграничения = СоздатьОбъект("СписокЗначений");
		фрм = СоздатьОбъект("Справочник.Подразделения_Фирмы");
		фрм.ИспользоватьВладельца(глПользователь.Подразделение);
		фрм.ВыбратьЭлементы();
		Пока фрм.ПолучитьЭлемент() = 1 Цикл
			Если фрм.ПометкаУдаления() = 1 Тогда
				Продолжить;
			КонецЕсли;
		СписокФирмОграничения.ДобавитьЗначение(фрм.Элемент.ТекущийЭлемент());
		КонецЦикла;

		//ЭлементОтбора=ТабличноеПоле.Отбор.Добавить("СкрытыйОтбор",-1);
		//ЭлементОтбора.ПолеДанных = "Фирма";
		ЭлементОтбора = ТабличноеПоле.Отбор.Добавить("Фирма", "СкрытыйОтбор", "Фирма");

		ЭлементОтбора.Видимость = 0;
		ЭлементОтбора.ИзменятьИспользование = 0;
		ЭлементОтбора.Использование = 1;
		ЭлементОтбора.ВидСравнения = "ВСписке";
		ЭлементОтбора.Значение = СписокФирмОграничения;
	КонецЕсли;
 

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #113 - 10. Декабря 2010 :: 11:47
Печать  
Большое спасибо за помощь, но при вызове            

ЭлементОтбора = ТабличноеПоле.Отбор.Добавить("Фирма", "СкрытыйОтбор", "Фирма");

происходит следующее: в модуле ОТБОР.ERT вызывается Добавить(), в которой происходит Возврат 0; вот в этом месте:

Если ПоляНастройки.НайтиПоле(ПолеНастройки) = -1 Тогда
           Возврат 0;
     КонецЕсли;

у меня подозрение, что перед добавлением в отбор надо как то проинициализировать ПоляНастройки, а как это делается - не нахожу примеров.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #114 - 10. Декабря 2010 :: 11:54
Печать  
ты добавляешь отбор по отсутствующему полю (колонке)

конкретно моего примера

Код
Выбрать все
Данные.НоваяКолонка("Фирма"); 



после этого по данной колонке можно будет добавить отбор
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #115 - 10. Декабря 2010 :: 12:00
Печать  
Прошу прощения, а если создавать колонки через
Данные.ЗаполнитьИзОбъекта( ТЗДок );

где ТЗДок - ТаблицаЗначений - что-то будет пропущено? Я как раз из ТЗ беру данные.
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #116 - 10. Декабря 2010 :: 12:08
Печать  
Вдогонку - если создать колонку вручную -Данные.НоваяКолонка("Фирма");, то выполнение
ЭлементОтбора = ТабличноеПоле.Отбор.Добавить("Фирма", "СкрытыйОтбор", "Фирма");

тоже возвращает 0, по причине того, что ПоляНастройки пустые. Может мне проще выложить тестовый пример (там только справочник фирма заменен на контрагенты), в котором отбор упорно возвращает 0?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #117 - 10. Декабря 2010 :: 12:19
Печать  
Выкладывай, посмотрим, но как я понял ты используешь ИндексированнуюТаблицу, а у нее нет отбора
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #118 - 10. Декабря 2010 :: 12:23
Печать  
Можно уточниться, в индексированной таблице нет отборов вообще? Если так, придется отказаться от табличного поля (а так хотелось).

p.s.  может есть способы реализовать хотя бы свой отбор (с книгами и поэтессами)? например держать полную ТЗ и выгружать ее в табПоле?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #119 - 10. Декабря 2010 :: 12:34
Печать  
Вообще ТЗ которую ты подгружаешь в поставщика это и есть результат ТВОИХ манипуляций с отборами. т.е что будет в тз то и будет показано в поставщике

ЗЫ в 4 версии отбор вынесен в отделный класс и управлять отбором ты можешь сам
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #120 - 10. Декабря 2010 :: 12:43
Печать  
Большое спасибо, я все понял, последний вопрос: После того, как таблица загружена, как ее можно обновлять? Дело в том, что если применять повторно метод ЗаполнитьИзОбъекта метод ПриВыводеСтроки начинает ругаться на пустое значение ДанныеСтроки.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #121 - 10. Декабря 2010 :: 13:05
Печать  
Если ПустоеЗначение(ДанныеСтроки) = 0 тогда
//твои какие то действия
иначе
//не ругаться
конецесли;

или

http://www.1cpp.ru/docum/icpp/html/IndexedTable.html#load
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #122 - 10. Декабря 2010 :: 13:11
Печать  
Спасибо огромное! Все получилось!!!
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #123 - 10. Декабря 2010 :: 16:22
Печать  
Anatol, объясни мне зачем при наличии колонки "Фирма" в метаданных справочника ты дополнительно добавляешь отбор. Ведь по всем колонкам которые есть в метаданных отборы добавляются автоматически самим поставщиком. Если ты не хочешь чтобы пользователь его видел, дык для этого у "ЭлементОтбора" есть собственные флаги.

В общем, to all, поскольку вопросов по отборам иногда возникает много то объясню сразу...
В версии 4.1.1 (собственно как и раньше) при установке ТипЗначений происходит считывание метаданных и добавление всех необходимых отборов. Т.е. если вы указали
ТипЗначений = "Справочник.Контрагенты" то все поля которые есть в контрагентах будут доступны в отборе без дополнительных "телодвижений". Достаточно написать
Код
Выбрать все
ОтборПоРеквизиту = ПоставщикДанных.Данные.Отбор.<ИмяРеквизита> 



А метод "Добавить" в объекте "Отбор" нужны для дополнительных отборов, и я их использую например если не надо отбор по метаданным реквизита справочника.
Т.е. например: у контрагенты есть реквизит "ОсновнойДоговор"  - это Справочник.Договоры. У справочника "Договоры" есть реквизит "ДатаОкончания", так вот если я хочу добавить отбор по этому реквизиту только тогда я и использую "Добавить". Хотя тут есть и второй путь, это методы "ДобавитьСоединениеДанных" и "ДобавитьКолонкуДанных". Но это совсем другая история.

Пы.сы. счас мне кажется что некоторые вещи я зря вынес наружу Улыбка.
  

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #124 - 10. Декабря 2010 :: 21:42
Печать  
vandalsvq писал(а) 10. Декабря 2010 :: 16:22:
Anatol, объясни мне зачем при наличии колонки "Фирма" в метаданных справочника ты дополнительно добавляешь отбор. Ведь по всем колонкам которые есть в метаданных отборы добавляются автоматически самим поставщиком. Если ты не хочешь чтобы пользователь его видел, дык для этого у "ЭлементОтбора" есть собственные флаги.



Это дополнительный отбор по фирме который не должен меняться пользователем. в конфе выбиваю заявки люди из разных областей (подразделений). в областях разные фирмы...

зы Вопрос был про добавление отбора...
ззы вот еще примение долнительным отборам
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #125 - 11. Декабря 2010 :: 05:46
Печать  
Уважаемые специалисты, если я еще не надоел своими вопросами, скажите пожалуйста, как в табличном поле скрывать колонки? Атрибут видимость у колонки нашел, но его программная установка в ноль не помогла (после этого делал ПоставщикДанных.Обновить() - тоже без толку ). Пока скрыл колонку через кнопку настроек, но ведь пользователь таким же образом может и вернуть, а там - служебная инфа, для него не предназначенная.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #126 - 13. Декабря 2010 :: 09:25
Печать  
Код
Выбрать все
Д.НоваяКолонка("ИмяФайла");
...
Колонка = ТП.Колонки.Получить("ИмяФайла");
Колонка.Видимость = 0; 


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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #127 - 13. Декабря 2010 :: 12:58
Печать  
Забыл добавить - колонка создавалась не через НоваяКолонка(), а через ЗаполнитьИзОбъекта(). При этом ПоставщикДанных.ТипЗначений = "ИндексированнаяТаблица"; Попробовал как Вы пишете - не сработало.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #128 - 13. Декабря 2010 :: 14:15
Печать  
да, блин...
каждый раз как ты "загружаешь из объекта" все твои данные очищаются вместе с колонками и настройками колонок.

как загрузил в ИТЗ так убирай колоку...

если структура таблицы неизменчива, то загружай в ИТЗ, не методами поставщика, а методами самой ИТЗ, а тотом просто обновляй строки ТП

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



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


Данные = ПостДанных.Данные;
Данные.ЗаполнитьИзОбъекта( ТЗДок );
     
Колонка = Данные.Колонки.РеалДок;
Колонка.Видимость              = 0;
...
ПостДанных.Обновить();

Тем не менее, колонка РеалДок видна. Правда ниже делается ТабПоле.ВосстановитьПозициюКолонок(); - может в этом причина?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


1C++ rocks!

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

На форме списка хочу вывести таблицы для двух справочников - основного и подчиненного.
Вывела, связала по Владельцу.
Написала процедуру <ИмяКнопки>ПриАктивацииСтроки(ТабличноеПоле), в которой Владелец меняется при переходе со строки на строку.

Оно даже работает.

Но - если текст процедуры ПриАктивацииСтроки не закомментирован, то в форме основного справочника нельзя прокрутить таблицу колесиком мыши или кнопками на клавиатуре - виден только первый экран.
При этом полосой скроллинга прокрутить таблицу можно. (естественно, проблема заметна только на справочниках с данными, не влазящими на один экран)

Если текст процедуры закомментирован - все работает, но, естественно, данные второй таблицы не обновляются при переходе со строки на строку первой таблицы

Где посоветуете копать? Печаль

Текст процедуры:
Код
Выбрать все
Процедура кнСписокТестПриАктивизацииСтроки(пТабличноеПоле)
	ТекущийФЛ = пТабличноеПоле.ТекущаяСтрока;
	пДанныеПодч.Владелец = ТекущийФЛ;
	пПоставщикДанныхПодч.Обновить();
КонецПроцедуры 



Текст всего модуля во вложении...
  

___________.txt ( 3 KB | Загрузки )
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #132 - 14. Декабря 2010 :: 06:22
Печать  
Вот, выкладываю на всякий случай еще и md...
  

1Cv7_011.MD ( 96 KB | Загрузки )
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #133 - 14. Декабря 2010 :: 06:32
Печать  
да ничего, при "обновить" на подчиненном справочнике слетает фокус с владельца. после обновления можно принудительно делать владельца активным, но зрелище не из приятных
  
Наверх
wwwICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #134 - 14. Декабря 2010 :: 06:37
Печать  
Хм... активным? Можете подсказать как? Метод "Активизировать" вроде бы только у КоманднойПанели есть...
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #135 - 14. Декабря 2010 :: 06:57
Печать  
1 вариант хлохой

Код
Выбрать все
Процедура ТПКонтрагентыПриАктивизацииСтроки(ТП)
	Если (ПустоеЗначение(ТП.ТекущиеДанные) = 0) и (ПустоеЗначение(ПоставщикДГ) = 0) Тогда
		//ЭлементДоПоиска = Форма.АктивныйЭлемент();
		ПоставщикДГ.Данные.Владелец = ТП.ТекущиеДанные.ТекущийЭлемент;
		ПоставщикДГ.Обновить();
		//Активизировать(ЭлементДоПоиска,0);
	КонецЕсли;
КонецПроцедуры // ТПКонтрагентыПриАктивизацииСтроки 




2 вариант очень плохой

в поставщике данных ТабличноеПоле закоментировать весь текст процедуры Активизировать()

3 вариант самый ...
попросить автора о добавлении возможности управления активизации
  
Наверх
wwwICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #136 - 14. Декабря 2010 :: 07:30
Печать  
Спасибо большое!
Работает, слава богу - а то мне к четвергу надо модуль закончить Улыбка))
Да, хотелось бы конечно без лишних активизаций, если это возможно... Но и так в общем-то все пока ок Улыбка
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #137 - 14. Декабря 2010 :: 10:56
Печать  
Большое спасибо за помощь всем помогавшим! Разрешите еще злоупотребить вашей добротой? Улыбка При изменении ячейки колонки "Справочник.ТипыЦен" происходит открытие формы списка справочника во весь экран, есть ли способы открывать справочник так, как это делает Спр.Выбрать() - т.е. небольшое окошко, не закрывающее вызывающую форму?
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

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

Проблема со снятием пометки на удаление:
Код
Выбрать все
Выполнить процедуру 'КоманднаяПанельПриНажатии' не удалось. Обратитесь пожалуйста к разработчикам.
ПоставщикДанных.ТабличноеПоле::КоманднаяПанельПриНажатии(Строка ИмяМетода=УдалитьСтроку, СписокЗначений Параметры=) : ПоставщикДанных.ТабличноеПоле::УдалитьСтроку() : ПоставщикДанных.Справочник::УдалитьСтроку() : Значение не представляет агрегатный объект
ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
543) }

вирт().УдалитьСтроку();
t(536) }

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



Может, решил кто-нибудь уже?  Круглые глаза
  
Наверх
 
IP записан
 
mirvel
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 55
Зарегистрирован: 28. Августа 2010
ПД ТП тип документ
Ответ #139 - 15. Декабря 2010 :: 05:05
Печать  
Можно ли изменять значение флажка табличного поля у которого тип данных документ?
я вывожу документы в табличном поле....соответсвенно отображаю реквизиты документа в колонке табличного поля....
В документе у меня есть реквизит который принимает значение только 1 или 0...
На табличном поле этот реквизит выводиться в колонку с галочками (флажками)....
Можно ли напрямую работать мышкой устанавливать значение флажка этого реквизита?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #140 - 15. Декабря 2010 :: 07:56
Печать  
2 Kateryne
у меня не воспроизводится, скинь текстовую обработку, есть некоторые мысли

2 mirvel
можно, по событию табличного поля ПриВыбореФлажка, а потом менять реквизит в документе

2 ildary
если я правильно понял то у тебя открывается не та форма?
смотри события РежимВыбора, ПриВыбореЗначения, Выбор и открывай формы какие хочешь
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #141 - 15. Декабря 2010 :: 08:00
Печать  
2 ildary
если я правильно понял то у тебя открывается не та форма?
смотри события РежимВыбора, ПриВыбореЗначения, Выбор и открывай формы какие хочешь [/quote]

В принципе это не такая уж важная проблема, сойдет и так.
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #142 - 15. Декабря 2010 :: 08:31
Печать  
Anatol писал(а) 15. Декабря 2010 :: 07:56:
2 Kateryne
у меня не воспроизводится, скинь текстовую обработку, есть некоторые мысли


Вот md-шник весь...
  

1Cv7_012.MD ( 96 KB | Загрузки )
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #143 - 15. Декабря 2010 :: 10:08
Печать  
да, ошибочка есть, но плевая. если горит можно было и самому подправить...
  
Наверх
wwwICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #144 - 15. Декабря 2010 :: 10:47
Печать  
Anatol писал(а) 15. Декабря 2010 :: 10:08:
да, ошибочка есть, но плевая. если горит можно было и самому подправить...

Это про мою проблему, или другую? Если мою, я что-то пока не догнала, где там проблема... Печаль
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #145 - 15. Декабря 2010 :: 10:58
Печать  
да простит меня автор.. немного подправил класс

вообще размешение поставщика на формах списка справочников не есть гуд имхо!
  

___________________________001.ert ( 29 KB | Загрузки )
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



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

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

после чего хотим выводить в таб.поле не только поля самого документа, но и что-то свое, например вставить колонку Пометка, а также вес документа (вычисляемый функцией из глобального модуля). Но попытка вставить новую колонку с именем, отличающимся от полей документа выдает ошибку Реквизит с идентификатором: "Пометка" не найден. Получается, что свои колонки создавать нельзя? 

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #147 - 17. Декабря 2010 :: 06:58
Печать  
смотри методы ДОБАВИТЬКОЛОНКУДАННЫХ, ДОБАВИТЬСОЕДИНЕНИЕДАННЫХ
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #148 - 17. Декабря 2010 :: 07:14
Печать  
Эти методы добавляют колонки, которые хоть как-то связаны с текущим документом - его поле или поле чего-то, которое можно связать через запрос. А мне надо доабвить колонки, которые я хочу заполнять данными самостоятельно, и которые запросом с текущим документом не связываются. Например в обычном журнале документов можно добавить текстовую колонку и делать помещать туда некое вычисление, отталкиваясь от текущего документа. Возможно ли такое в классе Табличное поле?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #150 - 17. Декабря 2010 :: 12:23
Печать  
Уважаемый vandalsvq, спасибо за помощь, я не такой специалист по черным запросам как вы, и не знал, что туда можно вставить значение внешней функции, попробую почитать мануал. ПриВыводеСтроки - знаю такой способ, но чтобы он работал - нужна колонка, а ведь ее сначала надо создать через запрос?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #151 - 17. Декабря 2010 :: 12:59
Печать  
Просто через этоти методы добавь колоку, пусть она будет пустая

Код
Выбрать все
Данные.ДобавитьКолонкуДанных("ИмяКолонки", "Заголовок", ""'", "строка", 50, , 0);
Данные.ДобавитьКолонку("ИмяКолоки"); 



В процедуре

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

	Если ТипРегиона = 3 Тогда
		//Что то считаешь....
		ОформлениеЯчейки = ОформлениеСтроки.Ячейки.Получить("ИмяКолонки");
		ОформлениеЯчейки.Текст = "То что ты вычислял выше...";
	КонецЕсли; 


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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #152 - 17. Декабря 2010 :: 13:45
Печать  
Большое спасибо за помощь, но тут выдается ошибка: пробовал параметр РеквизитЗапроса = ""'" или "'" - ругаются оба.

p.s. Я правильно понимаю, что применение таб.поля с одним и тем именем в разных внешних обработках делает сохранение их параметров под одним и тем же именем, например ВнешнийОтчеттпДок.txt? Есть ли возможность изменить это имя?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #153 - 17. Декабря 2010 :: 14:28
Печать  
Попробуй "$ПустоеЗначение"

Изменять Имя Файла нельзя
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #154 - 17. Декабря 2010 :: 14:44
Печать  
ПоставщикДанных.Документы::УстановитьПоставщикаДанных() : no such column: $ПустоеЗначение
ПоставщикДанных.УстановитьТекстЗапроса(ТекстЗапроса,"[КлючПорядка]","[ТекущийДокумент :Документ."+ВидДокумента+"]");
879) }
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #155 - 17. Декабря 2010 :: 15:03
Печать  
В общем смотри, делаешь колонку с ":ПустойИД" или "' '" (суть в принципе не важно, можно даже из родного запроса код, наименование или что угодно). А далее как тебе подсказали "ПриВыводеСтроки" через УстановитьТекст() или присвоение Текст = ... . НО: учти что добавленная колонка появится в отборе, но работать он не будет, потому что в запросе пустота. А значит лучше его скрыть начисто от пользователей. Отбор.ИмяКолонки.Видимость = 0. Как то так...
Пы.сы. а то что нельзя просто добавить колонку - это баг. Вылечим в следующем году Подмигивание
  

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #156 - 17. Декабря 2010 :: 15:07
Печать  
добавляется пустая колонка, бага нет, и в отборе не появится, последний параметр ведь 0

Код
Выбрать все
	ДН.ДобавитьКолонкуДанных("ИмяКолонки", "Заголовок", "''", , , , 0);
	ДН.НоваяКолонка("ИмяКолонки"); 



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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #157 - 17. Декабря 2010 :: 16:01
Печать  
Я, конечно же скопипастил, так как Вам целиком доверяю + в черных запросах я новичек (не допер, что завершающего знака нет).

Большое спасибо за подсказку по отбору, обязательно учту. Ну а то, что свои колонки появятся в будущем - это вообще праздник, буду ждать.


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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #158 - 20. Декабря 2010 :: 10:34
Печать  
Так неловко беспокоить уважаемых людей, но опять рискну спросить - в Таб поле добавлена  колонка "Пометка", тип - число, выводится в виде флажка. При попытке изменить значение выводится ошибка: Попытка присвоить значение недоступной для записи переменной (Пометка), как это победить? Если таб поле берет данные из индексированной таблицы, то все получается (правда там надо обращаться к этой самой таблице через ТабПоле.ПоставщикДанных.ИндексированнаяТаблица.Пометка).

Само действие происходит так:

Процедура ИзменитьФлажок( ТабПоле )
     
     ТекДанные = ТабПоле.ТекущиеДанные;
       ТекДанные.Пометка = 1 - ТекДанные.Пометка;

КонецПроцедуры

и еще: хочется сделать удобные отборы - т.е. например на форме 2 даты и документы отбираются по этим датам. Сам отбор создан, но как правильнее сделать перерисовку таб поля при смене даты? Сейчас сделано вот так:

ТекОтбор = ТабПоле.Отбор.Получить( ИмяОтбора );
ТекОтбор.Значение = НовЗнач;

ТабПоле.Обновить();

Но вдруг есть более простой способ привязать отбор не к статическому значению, а к контролу на форме?




« Последняя редакция: 20. Декабря 2010 :: 12:41 - ildary »  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #159 - 20. Декабря 2010 :: 12:54
Печать  
ildary писал(а) 20. Декабря 2010 :: 10:34:
Так неловко беспокоить уважаемых людей, но опять рискну спросить -


хватит уже загогяться



ildary писал(а) 20. Декабря 2010 :: 10:34:
как это победить? Если таб поле берет данные из индексированной таблицы, то все получается (правда там надо обращаться к этой самой таблице через ТабПоле.ПоставщикДанных.ИндексированнаяТаблица.Пометка).


вот в индексированной таблице и надо менять

  
Наверх
wwwICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #160 - 20. Декабря 2010 :: 12:58
Печать  
ildary писал(а) 20. Декабря 2010 :: 10:34:
и еще: хочется сделать удобные отборы - т.е. например на форме 2 даты и документы отбираются по этим датам. Сам отбор создан, но как правильнее сделать перерисовку таб поля при смене даты? Сейчас сделано вот так:

ТекОтбор = ТабПоле.Отбор.Получить( ИмяОтбора );
ТекОтбор.Значение = НовЗнач;

ТабПоле.Обновить();

Но вдруг есть более простой способ привязать отбор не к статическому значению, а к контролу на форме?



у ПоставщикДанных.Сервис есть метод ВыполнитьНастройкуОтбора, собственно после того как окно закрылось обновляй данные
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #161 - 20. Декабря 2010 :: 13:37
Печать  
Anatol писал(а) 20. Декабря 2010 :: 12:54:
ildary писал(а) 20. Декабря 2010 :: 10:34:
как это победить? Если таб поле берет данные из индексированной таблицы, то все получается (правда там надо обращаться к этой самой таблице через ТабПоле.ПоставщикДанных.ИндексированнаяТаблица.Пометка).



вот в индексированной таблице и надо менять



Извиняюсь, что не уточнил: для таб поля из индексированной таблицы все уже работает.  Вопрос возник для таб. поле по документу.

у ПоставщикДанных.Сервис есть метод ВыполнитьНастройкуОтбора, собственно после того как окно закрылось обновляй данные

Уточняю - речь идет не об отборе через большое окно сервиса отборов. Оно, конечно работает, но хочется упростить работу пользователя и не требовать открытие этого окна. Над таб полем документов висят две даты - ограничения для таб поля. человек выбирает другую дату - и таб поле перерисовывается. Сейчас я сделал вручную и это работает (описал выше), но вдруг есть метод проще.

И еще вопросы:

1) колонки добавленные вручную, по вашему способу, вот так:

Данные.ДобавитьКолонкуДанных( "РеалДокВид", "Реал", "''", "Строка", 6, , 0 );
Данные.НоваяКолонка( "РеалДок"        );

- есть ли возможность по ним делать отборы?

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #162 - 20. Декабря 2010 :: 14:50
Печать  
1. Отборы по ним делать не получится, потому что данные в запросе = ''. Их попросту нет, поэтому я и говорю что надо бы эти данные рассчитывать в самом запросе.
2. Для выгрузки есть метод, вроде "Выбрать()" называется или как то так, смотри расширение табличного поля "ПоставщикДанных.Документы".

Привязки к контролам твоей формы нет. Вроде даже в 1С 8.х такого нет Улыбка сколько работаю все вручную описываю.
Кстати почему "Получить()" а не просто через точку?
  

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #163 - 20. Декабря 2010 :: 15:24
Печать  
vandalsvq писал(а) 20. Декабря 2010 :: 14:50:
1. Отборы по ним делать не получится, потому что данные в запросе = ''. Их попросту нет, поэтому я и говорю что надо бы эти данные рассчитывать в самом запросе.
2. Для выгрузки есть метод, вроде "Выбрать()" называется или как то так, смотри расширение табличного поля "ПоставщикДанных.Документы".

Привязки к контролам твоей формы нет. Вроде даже в 1С 8.х такого нет Улыбка сколько работаю все вручную описываю.
Кстати почему "Получить()" а не просто через точку?


1. Спасибо, я так и думал, но решил уточнить.
2. Большое спасибо, не обратил внимания на этод метод - из-за названия (в 1С обычно он вызывает окно выбора одной позиции из списка).
3. Просто подумалось - было бы классно указать в качестве значения отбора не фиксированное значение, а видимый контрол в котором юзер может это значение менять, и при каждом изменении в этом контроле, автоматически бы обновлялся и  отбор, и само табличное поле. Я понимаю, что подобные плюшки треубют времени и сил и не прошу Вас беспокоиться, все уже работает и так, я просто уточнял - вдруг уже сделано Улыбка

p.s.  и вдогонку - скажите пожалуйста, есть ли возможность менять данные в табличном поле (я выше писал - про поле Пометка). Я хочу попробовать принудительно вызвать ПриВыводеСтроки  - сработает ли этот фокус?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #165 - 21. Декабря 2010 :: 07:06
Печать  
Спасибо за помощь, а в будущем такое (гибкая работа с документами и справочниками, как с ИТЗ) будет возможно?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #166 - 21. Декабря 2010 :: 11:52
Печать  
Нет.
  

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #167 - 29. Декабря 2010 :: 15:23
Печать  
Небольщая доработка класса ПоставщикДанных.ИндексированнаяТаблица

Сортировка таблицы по клику по заголовку (для версии 3)

Метод:
НоваяКолонка
Синтаксис: НоваяКолонка(Идентификатор, ТипВид, <Длина|СписокЗначений>, Точность, Заголовок, ШиринаКолонки, Итоги, ОтметкаНезаполненного, ПризнакСортировки)

ПризнакСортировки: 1 - колонка сортируется при клике по заголовку, 0 - обычный режим (по умолчанию)

Атрибут:
СортировкаПоЗаголовкам: // 1 - Таблица сортируется при клике по заголовку, 0 - обычный режим (по умолчанию)
  

PD_IT.rar ( 18 KB | Загрузки )
Наверх
wwwICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #169 - 29. Декабря 2010 :: 18:52
Печать  
обусловлено удобством, именно сортировка кликом по заголовку или такой функционал уже есть?
  
Наверх
wwwICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #171 - 29. Декабря 2010 :: 20:49
Печать  
vandalsvq писал(а) 29. Декабря 2010 :: 20:28:
На моей памяти есть момент, что вроде я реализовывал обработку клика заголовка в целях сортировки. + есть методы соответствующие Улыбка.


Справочник, Журнал, Документ, Дерево. Операции... ИТ нет
  
Наверх
wwwICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #172 - 29. Декабря 2010 :: 22:15
Печать  
Ну значит ошибся Улыбка))) звините
  

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #173 - 30. Декабря 2010 :: 06:20
Печать  
может тогда стоит добавить в основную ветку?
  
Наверх
wwwICQ  
IP записан
 
OnCheck
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #174 - 03. Января 2011 :: 07:01
Печать  
Научите пользоваться? У меня есть задача показать все элементы справочника материалы, у которых остаток на складу не равно 0. Подсмотрел в хелпе, что это делается так:
     ТекстСоединения = "LEFT JOIN РегистрИтоги.МестаХранения AS Итоги $NOLOCK
     |ON ($ТекущийОбъект.ТекущийЭлемент = $Итоги.МПЗ)";
     ДанныеСправочник.ДобавитьСоединениеДанных("Остатки",ТекстСоединения);

1. только где сделать фильтр по периоду "Итоги.period = $ПредПериод", и как туда положить значение $ПредПериод?
2. и как потом положить это соединение данных на форму в ТП, да так чтобы еще включить отбор по этому полю.
3. Да и попутный вопрос: ТекущийОбъект - это объект метаданных которые возвращается поставщиком данных для текущей строки ТП? т.е. чтобы получить это значение в методе ПриВыводеСтроки нужно
     ДанныеСправочник = ПоставщикДанныхМногострочнаяЧасть.Данные;
     ТекущийЭлемент = ДанныеСправочник.ТекущийОбъект;
заранее спасибо.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #175 - 03. Января 2011 :: 09:29
Печать  
Начало верное.
После добавления соединения необходимо добавить колонку данных (колонку с остатком). Данная колонка добавиться в коллекции "Отбор" и соответственно будет доступна через его механизм.
Чтобы поставить снятие остатков на конкретную дату необходимо использовать виртуальную таблицу остатков. Т.е. $РегистрОстатки.МестаХранения. Но необходимо убедиться что в результате соединения не произойдет задвоения строк таблицы источника (справочника).
ТекущийОбъект - имя таблицы источника для поставщика данных (в твоем случае это Справочник.МестаХранения КАК ТекущийОбъект). А ТабличноеПоле.ТекущаяСтрока - ссылка на элемент справочника "МестаХранения". Соответственно ТекущиеДанные.ТекущийЭлемент - это ссылка, а ТекущиеДанные.ТекущийОбъект - данной конструкции не существует.
  

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


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #176 - 03. Января 2011 :: 09:52
Печать  
1. Я не совсем понимаю, где указвается связь. Какое имя должно быть у колонки, как поставщик данных поймет что результат соедиения положить в эту колонк?
2. Т.е. в моей строке содинения нужно заменить "РегистрИтоги.МестаХранения" на "$РегистрОстатки.МестаХранения"? или ты что-то совсем иное имеешь в виду?
3. Понятно, но как я понял что по колонке без соединения отбор невозможен, но в этом году есть план на реализацию. Верно? У меня 1С расширен firebird -ом, таким образом мне по ключу надо подключить дополнительные данные для элемента справочника и по ним генерировать отбор, другими способами это нельзя реализовать?
  
Наверх
 
IP записан
 
OnCheck
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #177 - 03. Января 2011 :: 10:49
Печать  
и еще один момент: баг или нет? в табличном поле поставщика данных код ограничен до 4 разрядного числа. В общем, вместо 10000 пишет 9999.
  
Наверх
 
IP записан
 
nvg
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 72
Местоположение: Киев
Зарегистрирован: 14. Сентября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #178 - 04. Января 2011 :: 09:52
Печать  
OnCheck писал(а) 03. Января 2011 :: 10:49:
и еще один момент: баг или нет? в табличном поле поставщика данных код ограничен до 4 разрядного числа. В общем, вместо 10000 пишет 9999.

Баг или фича - не знаю, сказывается форматирование числовых полей. Поле код в твоем справочнике - числовое, и оно тоже форматируется. Кстати, уже обсуждалось. Может, исправлено - не обновлялся еще на последний релиз.
  
Наверх
ICQ  
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #179 - 05. Января 2011 :: 08:40
Печать  
nvg писал(а) 04. Января 2011 :: 09:52:
OnCheck писал(а) 03. Января 2011 :: 10:49:
и еще один момент: баг или нет? в табличном поле поставщика данных код ограничен до 4 разрядного числа. В общем, вместо 10000 пишет 9999.

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

Обсуждался баг но не в Справочнике а в ИндексированнойТаблице. Хотя ноги у них растут и одного места - особенности работы функции Формат(...) при наличии разделителя тысяч. 1С разделитель учитывает как отдельное знакоместо и в результате код
Код
Выбрать все
		ПредставлениеКода = Формат(Код,"Ч "+ДлинаСтр);
 


работает не совсем так как ожидалось. Попробуй заменить его на
Код
Выбрать все
		ПредставлениеКода = Формат(Код,"Ч "+СокрЛП(ДлинаСтр+Цел((ДлинаСтр)/3)));
 


Должно попустить
Цитата:
Может, исправлено - не обновлялся еще на последний релиз.

Не! В ИндексированнойТаблице и в Документа не исправлено, а в Справочнике тем более - потому как даже не обсуждалось
  
Наверх
ICQ  
IP записан
 
Supervisor
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 27. Декабря 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #180 - 06. Января 2011 :: 14:54
Печать  
Господа, пытаюсь построить дерево, взял пример дерева значений (Тест дерево значений.ert). Почему-то в ТП нет иерархии. Где копать?
Код
Выбрать все
Процедура ПослеСозданияФормы()
	ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
	ПоставщикДанных.ТипЗначений = "ДеревоЗначений";
	ПоставщикДанных.КонтейнерКоманднойПанели = "ПУ";
	ПоставщикДанных.КонтейнерТабличногоПоля  = "ТП";

	Данные = ПоставщикДанных.Данные;
	Данные.СоздатьКнопкиПоУмолчанию();

	Данные.НоваяКолонка("ИмяУровня","Строка",,,"Имя уровня");
	Данные.НоваяКолонка("НомерУровня","Число",,,"№ уровня");
	Данные.НоваяКолонка("Значение","Число",,,"Значение",,1);

	ДеревоЗначений = Данные.ДеревоЗначений;

	Для Н = 1 По 10 Цикл
		СтрокаН = ДеревоЗначений.НоваяСтрока();
		ДеревоЗначений.ИмяУровня   = "Уровень № "+ДеревоЗначений.Уровень;
		ДеревоЗначений.НомерУровня = ДеревоЗначений.Уровень;
		ДеревоЗначений.Значение    = Н;

		Для Н1 = 1 По 5 Цикл
			СтрокаН1 = ДеревоЗначений.НоваяСтрока(СтрокаН);
			ДеревоЗначений.ИмяУровня   = "Уровень № "+ДеревоЗначений.Уровень;
			ДеревоЗначений.НомерУровня = ДеревоЗначений.Уровень;
			ДеревоЗначений.Значение    = Н1;

			Для Н2 = 1 По 4 Цикл
				СтрокаН2 = ДеревоЗначений.НоваяСтрока(СтрокаН1);
				ДеревоЗначений.ИмяУровня   = "Уровень № "+ДеревоЗначений.Уровень;
				ДеревоЗначений.НомерУровня = ДеревоЗначений.Уровень;
				ДеревоЗначений.Значение    = Н2;
			КонецЦикла;
		КонецЦикла;
	КонецЦикла;

	ПоставщикДанных.Обновить();
КонецПроцедуры
 

  

Tree.jpeg ( 55 KB | Загрузки )
Tree.jpeg
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


1C++ rocks!

Сообщений: 11
Зарегистрирован: 27. Декабря 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #182 - 06. Января 2011 :: 18:08
Печать  
ок, попробую.
И еще вопрос - пытаюсь использовать ЗАГРУЗИТЬПОИЕРАРХИИ в этом же примере вместо ручного заполнения дерева
Код
Выбрать все
	ДеревоЗначений.ЗагрузитьПоИерархии(тзЭлементов,"Номенклатура","МинОстаток",,); 


тзЭлементов это ТЗ с двумя колонками "Номенклатура" и "МинОстаток"
В дерево ничего не попало, что не так делаю?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #183 - 06. Января 2011 :: 18:22
Печать  
А смысл группировать плоскую таблицу по одной колонке. Я уже не помню синтаксис, но вроде там надо передать колонки группировки, и суммирующиеся. А если колонка одна на всю таблицу (т.е. и группировка и строки) вот его и пучит Улыбка. Попробуй сделать МХ + Номенклатура и группировку по МХ
  

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


1C++ rocks!

Сообщений: 11
Зарегистрирован: 27. Декабря 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #184 - 06. Января 2011 :: 18:56
Печать  
С пиктограммами разобрался. ЗагрузитьПоИерархии тож заработало, СПАСИБО! Очень довольный
Группировка даж в плоской таблице работает, я просто колонку
Код
Выбрать все
Данные.НоваяКолонка("КолонкаГруппировки",,,,"КолонкаГруппировки"); 

не добавил - поэтому ничего и не видел в дереве  Улыбка
  
Наверх
 
IP записан
 
Bill
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #185 - 08. Января 2011 :: 18:31
Печать  
Ошибка
ПоставщикДанных.Справочник
Версия = "4.1.1 01.11.2010"
сборка 4_1_1_002
файл ПоставщикДанных.ВыборГруппы.ert
Процедура ПослеСозданияФормы()

При переносе элемента в другую группу ругается на "НастройкаОтбора.Идентификатор" и "ДанныеСпр.Отбор.НайтиКлюч(НастройкаОтбора.Идентификатор,0)"

Исправил так:
НастройкаОтбора.Идентификатор -> НастройкаОтбора.Имя
ДанныеСпр.Отбор.НайтиКлюч(НастройкаОтбора.Идентификатор,0) -> ДанныеСпр.Отбор.НайтиОтбор(НастройкаОтбора.Имя)
« Последняя редакция: 09. Января 2011 :: 06:08 - Bill »  
Наверх
 
IP записан
 
Bill
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #186 - 09. Января 2011 :: 08:25
Печать  
Ошибка
ПоставщикДанных.Справочник
Версия = "4.1.1 01.11.2010"
сборка 4_1_1_002
файл ПоставщикДанных.Справочник.ert
Процедура УдалитьСтроку()

При снятии пометки удаления с элемента возникает ошибка.

Исправил так:
Код
Выбрать все
//Спр//:Справочник
Если ПометкаУдаления = 1 Тогда
	Если МетаСправочник.Владелец.Выбран() = 1 Тогда
		ТекстВопроса = "Подтвердите отмену удаления объекта !";
		Если Вопрос(ТекстВопроса,"Да+Нет") = "Да" Тогда
			СпрВладелец.СнятьПометкуУдаления();
			//Добавления Bill
			ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
							,"справочник"
							,"RefUnmarkDel"
							,СпрВладелец.ТекущийЭлемент()
							,2);
			//Конец добавлений
		Иначе
			Возврат;
		КонецЕсли;
	КонецЕсли;

	//Изменеия Bill
	//Блок ошибочный:
	//ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
	//						,"справочник"
	//						,"RefUnmarkDel"
	//						,СпрВладелец.ТекущийЭлемент()
	//Конец изменений

	Спр.СнятьПометкуУдаления();
	//Добавления Bill
	ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
							,"справочник"
							,"RefUnmarkDel"
							,Спр.ТекущийЭлемент()
							,2);
	//Конец добавлений
	Если Спр.ЭтоГруппа() = 1 Тогда 



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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #187 - 10. Января 2011 :: 06:16
Печать  
  
Наверх
wwwICQ  
IP записан
 
Supervisor
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 27. Декабря 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #188 - 12. Января 2011 :: 17:14
Печать  
Еще вопрос по дереву значений. Необходимо найти значение на нужном уровне в дереве значений. Метода позволяющего это сделать я не нашел. Решил поискать в ИТЗ - источнике данных. Читаю документацию:

Хранение происходит в ИТЗ имеющей структуру

Имя колонки хранилища Наличие в представлении Имя колонки в представлении
rows                               нет                                    -

При этом rows – это объект «ИндексированнаяТаблица» которая не имеет структуры до тех пор пока не будет создано хотя бы одна строка. Структура rows – соответствует структуре головной ИТЗ


Отлично - rows то что мне надо, я по ней поищу методами ИндексированнойТаблицы .... но как до rows достучаться? Смущённый
Код
Выбрать все
	ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
	ПоставщикДанных.ТипЗначений = "ДеревоЗначений";
	ПоставщикДанных.КонтейнерКоманднойПанели = "ПУ";
	ПоставщикДанных.КонтейнерТабличногоПоля  = "ТП";
	Данные = ПоставщикДанных.Данные;
	Данные.СоздатьКнопкиПоУмолчанию();
	Данные.НоваяКолонка("Номенклатура",,,,"Номенклатура");  
        Данные.НоваяКолонка("Цвет",,,,"");
	ДеревоЗначений = Данные.ДеревоЗначений;  
 



Через ДеревоЗначений.rows добраться не могу ....
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


1C++ rocks!

Сообщений: 7
Зарегистрирован: 05. Января 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #190 - 13. Января 2011 :: 09:58
Печать  
Добрый день, подскажите пожалуйста, после метода ЗагрузитьПоИерархии, если ИтогПоПервомуУровню установлен в 0, итоги стразу видны в подвале, если же в 1 по умолчанию, итоги не отображаются пока не развернешь какую нибудь ветку, а если уровень один и разворачивать нечего, тогда хана ))
Когда второй раз заполняю, не закрывая форму отчета, выводятся сразу...
Судя по всему загвоздка где то тут ПоставщикДанных.ДеревоЗначений.ert, ТабличноеПоле.ТекущаяСтрока пустое при первом заполнении
Код
Выбрать все
				Если ИтогПоПервомуУровню = 1 Тогда
					Если ПустоеЗначение(ТабличноеПоле.ТекущаяСтрока) = 1 Тогда
						ЗначениеИтого = 0;
					Иначе
						ЗначениеИтого = ДеревоЗначений.Итог("",Идентификатор);
					КонецЕсли;
				Иначе
					ЗначениеИтого = ТаблицаДанных.Итог(Идентификатор);
				КонецЕсли;
				Подвал.УстановитьЗначение(1,Идентификатор,ЗначениеИтого);
 



Разобрался сам, добавил метод Обновить()
  
Наверх
 
IP записан
 
Supervisor
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 27. Декабря 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #191 - 14. Января 2011 :: 10:11
Печать  
Еще вопрос возник - почему при выводе списка ненужные колонки удаляются
Код
Выбрать все
Сервис.ПараметрыВыводаСписка.НеУчитываемые.Добавить("Цвет","Цвет"); 


а при настройке списка только затемняются (становятся недоступными)
Код
Выбрать все
 


Хотелось бы чтоб тоже удалялись (не мозолили глаза пользователю - ведь выбрать их все равно нельзя)
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


1C++ rocks!

Сообщений: 11
Зарегистрирован: 27. Декабря 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #193 - 14. Января 2011 :: 13:03
Печать  
vandalsvq писал(а) 14. Января 2011 :: 11:31:
Ну так, пускай пользователь видет что еще скрыто от его глаз, вдруг ему это захочется тогда он попросит проггера.
На самом деле не помню, видимо зачем то посчитал нужным.

Ну на самом деле пользователю  колонки типа "ИндексСтроки" даже в страшном сне не пригодятся  Подмигивание Ну да ладно - выбрать не сможет - уже хорошо.
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #194 - 17. Января 2011 :: 13:52
Печать  
пожалуйста выложите простой пример работы с ПоставщикДанных.ИндексированнаяТаблица.

Что- то не могу найти примера.

Хочу переделать старый отчет, где на форме 3 таблицы значений, хотелось бы просто заменить их на табличные поля.
  
Наверх
 
IP записан
 
krest
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 1
Зарегистрирован: 17. Января 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #195 - 17. Января 2011 :: 21:52
Печать  
Подскажите, пожалуйста, как добавить горизонтальную полосу прокрутки? Очень много колонок, хотелось, чтобы было видно что в них написано...
  

11.JPG ( 113 KB | Загрузки )
11.JPG
Наверх
 
IP записан
 
Supervisor
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 27. Декабря 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #196 - 20. Января 2011 :: 10:40
Печать  
Что-то не могу догнать а как сортировать Дерево по нужной колонке?
(не кликом по колонке а программно)
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #197 - 21. Января 2011 :: 10:42
Печать  
Уважаемые специалисты, скажите пожалуйста, есть ли в табличном поле функционал, который аналогичен форматированию по шаблону в таблице значений? Я имею в виду когда в ТЗ создается новая колонка, один из параметров НоваяКолонка() - Формат, например когда требуется хранить в ТЗ дробные числа, но чтобы выводились они в целом округленном виде. Хелп читал, исходники смотрел - не нашел. Или это надо делать самому переопределяя ПриВыводеСтроки()?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #198 - 21. Января 2011 :: 11:26
Печать  
У колонки табличного поля есть свойство "Формат". Кроме документации по классу, иногда надо бы посматривать и общее развитие объекта "Табличное поле".
В общем смотри тут - http://www.1cpp.ru/docum/icpp/html/TableField.html#format
  

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #199 - 21. Января 2011 :: 12:01
Печать  
Большое спасибо за помощь! Похоже я смотрел устаревший хелп.
  
Наверх
 
IP записан
 
nixstill
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 14
Зарегистрирован: 19. Января 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #200 - 26. Января 2011 :: 22:07
Печать  
Помогите новичку, вылазит данное сообщение:
Код
Выбрать все
ПоставщикДанныхКонтрагенты.ТипЗначений = "Справочник.Контрагенты";
{F:\SKAT_EXAMPLE.ERT(332)}: ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=Справочник.Контрагенты) : ПоставщикДанных.ТабличноеПоле::Конструктор() : Неудачная попытка создания объекта
Отбор = СоздатьОбъект("Отбор");
{M:\bases\Class\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(83) }

ПоставщикДанных = СоздатьОбъект("ПоставщикДанных.Справочник");
{M:\bases\Class\ПоставщикДанных\ПоставщикДанных.ert(94) } 



Использую последнюю версию "ПоставщикДанных", 1cpp 3.2.3.9, FormEx тоже последней версии.
Причем эта обработка "SKAT_EXAMPLE.ERT" была взята отсюда с форума.
  
Наверх
 
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #201 - 28. Января 2011 :: 07:45
Печать  
Хочу в документе вместо табличной части использовать поставщика данных.
Выдается такая ошибка
Код
Выбрать все
ПоставщикДанных.ТабличноеПоле::Конструктор() : Неудачная попытка создания объекта
Отбор = СоздатьОбъект("Отбор");
{F:\Ярмарка\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(83) }

ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=ТабличнаяЧасть.ЧекККМ) : ПоставщикДанных.ТабличноеПоле::Конструктор() : Неудачная попытка создания объекта
Отбор = СоздатьОбъект("Отбор");
{F:\Ярмарка\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(83) }

ПоставщикДанных = СоздатьОбъект("ПоставщикДанных.ТабличнаяЧасть");
{F:\Ярмарка\ПоставщикДанных\ПоставщикДанных.ert(118) }

ПоставщикДанныхМногострочнаяЧасть.ТипЗначений = "ТабличнаяЧасть.ЧекККМ";
{Документ.ЧекККМ.Форма.Модуль(112)}: ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=ТабличнаяЧасть.ЧекККМ) : ПоставщикДанных.ТабличноеПоле::Конструктор() : Неудачная попытка создания объекта
Отбор = СоздатьОбъект("Отбор");
{F:\Ярмарка\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(83) }

ПоставщикДанных = СоздатьОбъект("ПоставщикДанных.ТабличнаяЧасть");
{F:\Ярмарка\ПоставщикДанных\ПоставщикДанных.ert(118) }
 


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

	ДанныеТабличнаяЧасть = ПоставщикДанныхМногострочнаяЧасть.Данные;
	ДанныеТабличнаяЧасть.КнопкаПросмотр = 1;
	ДанныеТабличнаяЧасть.СоздатьКнопкиПоУмолчанию();

	ТабличноеПоле = ДанныеТабличнаяЧасть.ТабличноеПоле;
	ТабличноеПоле.СтильЗаголовков = 1;
	ТабличноеПоле.СтильРамки = 1;
 

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


1C++ rocks!

Сообщений: 14
Зарегистрирован: 19. Января 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #202 - 28. Января 2011 :: 08:20
Печать  
Скорее всего, вы как и я забыли прописать классы "Объекты_v8"
  
Наверх
 
IP записан
 
HeiHeShang
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #203 - 28. Января 2011 :: 10:13
Печать  
Прописал.
Теперь вылезла другая проблема при редактировании табличной части вываливает
Код
Выбрать все
(2)	Возврат<<?>> ;	Ожидается выражение
ПоставщикДанных.ТабличнаяЧасть::ПолучитьЗначениеФормулы(АссоциативныйВектор ВложеннаяСтруктура=) : (2)	Возврат<<?>> ;	Ожидается выражение
ВыпМодуль.КомпилироватьМодуль();
{F:\Ярмарка\ПоставщикДанных\ПоставщикДанных.ТабличнаяЧасть.ert(84) }

ПоставщикДанных.ТабличноеПоле::ПриРедактированииЗначения(Число ТекущаяСтрока=1, КолонкаТабличногоПоля ТекущаяКолонка=, Число ТипРегиона=3, Справочник.Номенклатура Значение=     29884   ) : ПоставщикДанных.ТабличнаяЧасть::ПолучитьЗначениеФормулы(АссоциативныйВектор ВложеннаяСтруктура=) : (2)	Возврат<<?>> ;	Ожидается выражение
ВыпМодуль.КомпилироватьМодуль();
{F:\Ярмарка\ПоставщикДанных\ПоставщикДанных.ТабличнаяЧасть.ert(84) }

е);
{F:\Ярмарка\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(440) }

ПоставщикДанных.ТабличноеПоле::ПриРедактированииЗначения(Число ТекущаяСтрока=1, КолонкаТабличногоПоля ТекущаяКолонка=, Число ТипРегиона=3, Справочник.Номенклатура Значение=     29884   ) : ПоставщикДанных.ТабличнаяЧасть::ПолучитьЗначениеФормулы(АссоциативныйВектор ВложеннаяСтруктура=) : (2)	Возврат<<?>> ;	Ожидается выражение
ВыпМодуль.КомпилироватьМодуль();
{F:\Ярмарка\ПоставщикДанных\ПоставщикДанных.ТабличнаяЧасть.ert(84) }

е);
{F:\Ярмарка\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(440) }
 


Табличная часть документа почему-то пустая, когда открываешь существующий документ.
  
Наверх
 
IP записан
 
Jarad
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 35
Зарегистрирован: 22. Мая 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #204 - 28. Января 2011 :: 11:33
Печать  
Скажите, а есть ли возможно использовать класс, к примеру "ПоставщикДанных.Справочник" + "ПоставщикДанных.ДеревоЗначений", как основу для создания своего класса, к примеру "ФормаСпискаСправочника", уже с готовыми плюшками табличных полей, ну.. для ускорения разработки, чтоб использовать уже один класс для всех форм списка.
Столкнулся с тем, что класс базовый ПоставщикДанных вызывает "контекст" окружения, и если этим контекстом есть форма списка, то все ок, а если "внешняя обработка" (т.е. мой класс наследник от Поставщиков), вылетают ошибки.
Никто не ставил подобные задачи?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
novichek
Экс-Участник


Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #206 - 28. Января 2011 :: 13:09
Печать  
vandalsvq писал(а) 28. Января 2011 :: 12:33:
Наследоваться от класса не советовал бы. Я все подобные задачи решал через класс в котором события вызываются из формы, а в форму идут из поставщика.


Оппа. Саш, а поподробней почему "не советовал бы"? Я тут как раз заморочился созданием наследника от "ПоставщикДанных.ИндексированнаяТаблица".
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #208 - 31. Января 2011 :: 12:08
Печать  
dimm73 писал(а) 17. Января 2011 :: 13:52:
пожалуйста выложите простой пример работы с ПоставщикДанных.ИндексированнаяТаблица.

Что- то не могу найти примера.

Хочу переделать старый отчет, где на форме 3 таблицы значений, хотелось бы просто заменить их на табличные поля.

Присоединяюсь к просьбе.
  

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


I Love YaBB 2!

Сообщений: 101
Зарегистрирован: 01. Августа 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #209 - 01. Февраля 2011 :: 13:43
Печать  
Подскажите как получить итог по колонке ПоставщикДаных.ТабличнаяЧасть ?
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #210 - 02. Февраля 2011 :: 18:11
Печать  
HeiHeShang писал(а) 01. Февраля 2011 :: 13:43:
Подскажите как получить итог по колонке ПоставщикДаных.ТабличнаяЧасть ?

Если не ошибаюсь, то второй параметр метода НоваяКолонка - это флаг ВыводитьИтоги. Почитай доку.
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #211 - 02. Февраля 2011 :: 18:12
Печать  
al_zzz писал(а) 31. Января 2011 :: 12:08:
dimm73 писал(а) 17. Января 2011 :: 13:52:
пожалуйста выложите простой пример работы с ПоставщикДанных.ИндексированнаяТаблица.

Что- то не могу найти примера.

Хочу переделать старый отчет, где на форме 3 таблицы значений, хотелось бы просто заменить их на табличные поля.

Присоединяюсь к просьбе.


Поишите по ветке, куча примеров.
...
Вот нашел.Когда-то отсюда брал.
  

______________________001.ert ( 54 KB | Загрузки )
Наверх
 
IP записан
 
Pavel.V
Junior Member
**
Отсутствует


I hate 1C!!!

Сообщений: 19
Местоположение: Belarus
Зарегистрирован: 09. Декабря 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #212 - 04. Февраля 2011 :: 12:14
Печать  
Нашел в ветке как после закрытия документа обновить табличное поле в журнале. Вот теперь помогите спозиционировать курсор на созданный документ, после его закрытия.
Попытка "найти значение" не получилась. Помогите избавиться от танца с бубном.
[code]
ПоставщикДанныхМногострочнаяЧасть.НайтиЗначение("Документ",Докум);
[/code]
[code]
{Обработка.ЖурналОтгрузка.Форма.Модуль(119)}: Поле агрегатного объекта не обнаружено (НайтиЗначение)
[/code]
  
Наверх
GTalkICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #213 - 04. Февраля 2011 :: 14:54
Печать  
если нужно и менно искать, то :

Код
Выбрать все
ПоставщикДанныхМногострочнаяЧасть.Данные.НайтиЗначение("Документ",Докум); 




а, если спозиционироваться то

Код
Выбрать все
ТП = ПоставщикДанныхМногострочнаяЧасть.ТабличноеПоле;
ТП.ТекущаяСтрока = Докум.текущийДокумент();
ТП.ОбновитьСтроки(); 

  
Наверх
wwwICQ  
IP записан
 
Jarad
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 35
Зарегистрирован: 22. Мая 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #214 - 11. Февраля 2011 :: 12:26
Печать  
Если возможность добавить отбор в объекте ПоставщикДанных.ИндексированнаяТаблица.
Через "ТабличноеПоле.Отбор.Добавить" не добавляет, так как туда можно добавить только "сложные" отборы через точку и для "Поставщик-справочник".
Или остается только один вариант  - реализовывать схему корректировки запроса уже с фильтрами и перестройку запроса с обновлением итз, и ТП.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #215 - 11. Февраля 2011 :: 14:47
Печать  
Нету отбора у индексированной таблицы
  
Наверх
wwwICQ  
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #216 - 15. Февраля 2011 :: 14:14
Печать  
Может уже кто и писал - я не нашел  - "ПоставщикДанных.Журнал" ругается при быстром поиске на строку
Код
Выбрать все
	Если ТабличноеПоле.Колонки.Индекс(ИмяКолонки,0) = -1 Тогда 


Ругается на второй параметр, которого как-бы не должно быть. Убрал его - работает
  
Наверх
ICQ  
IP записан
 
ma3x
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 24. Июля 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #217 - 15. Февраля 2011 :: 14:57
Печать  
Подскажите пожалуйста, есть ли возможность добавить колонку в форму списка справочника типа флаг, для редактирования пользователю, чтобы потом там он смог отметить необходимые элементы для последующей обработки. Задача похожа на функционал "стандартной" Uchoice.ert. Может кто-нибудь решал такую проблему и поделится решением ?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #218 - 16. Февраля 2011 :: 06:32
Печать  
ma3x писал(а) 15. Февраля 2011 :: 14:57:
Подскажите пожалуйста, есть ли возможность добавить колонку в форму списка справочника типа флаг, для редактирования пользователю, чтобы потом там он смог отметить необходимые элементы для последующей обработки. Задача похожа на функционал "стандартной" Uchoice.ert. Может кто-нибудь решал такую проблему и поделится решением ?


А в чем сложность ?
Если нужно хранить "галки" всегда - то тупо добавляешь реквизит в справочник - на форму текстовую колонку для показа флага + значения из реквизита справочника, при смене флажка - запись нового значения в реквизит.

Если хранить "флажки" не надо - то тупо создавай СЗ/ТЗ/Индексированную ТЗ при открытии формы списка справочника, при смене галки, значения пихай в эту ТЗ, + текстовая колонка с галкой, значениями для которой будут эти значения из ТЗ.
Всё.

ЗЫ: я даже писал в своё время класс, для выделения цветом строк ТЧ на этом принципе.
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #219 - 16. Февраля 2011 :: 09:26
Печать  
где посмотреть описание УстановитьГраницыПоФорме ?

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


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

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

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


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #221 - 18. Февраля 2011 :: 00:09
Печать  
Здравствуйте!
Подскажите пожалуйста, как лучше решить такую задачу:
хочу добавить несколько своих кнопок в тулбар, и несколько оставить стандартных (но не все).
Как добавлять свои кнопки - разобралась.
А как добавить кнопку из числа стандартных, с соответствующим обработчиком? Ну, например, кнопку "Обновить"?
Точнее, именно обработчик интересует. Я хочу сделать такое:
Код
Выбрать все
перКоманднаяПанель.Добавить(перКоманднаяПанель.Кнопка("Обновить",1, "Обновить", 6
, "Что-здесь-должно-быть?", <а-что-должно-быть-здесь?>); 


Такое возможно?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #222 - 18. Февраля 2011 :: 07:09
Печать  
"Что-здесь-должно-быть?" : Название процедуры/функции
<а-что-должно-быть-здесь?> : "Кому" принадлежит данная процедура/ф-я, где ее (процедуру/ф-ю) найти

каким образом:

Код
Выбрать все
Процедура СтандартныеКнопки(ПоставщикДанных)

	КоманднаяПанель = ПоставщикДанных.Данные.КоманднаяПанель;
	ТабличноеПоле = ПоставщикДанных.ТабличноеПоле;

	6);

	Кнопка = КоманднаяПанель.Кнопка("Добавить",,,1,"ДобавитьСтроку",ПоставщикДанных);
	Кнопка.Подсказка = "Добавить новую строку";
	Кнопка.Доступность = ТабличноеПоле.ИзменятьСоставСтрок;
	КоманднаяПанель.Добавить(Кнопка);

	Кнопка = КоманднаяПанель.Кнопка("Изменить",,,4,"ИзменитьСтроку",ПоставщикДанных);
	Кнопка.Подсказка = "Изменить текущую строку";
	КоманднаяПанель.Добавить(Кнопка);

	Кнопка = КоманднаяПанель.Кнопка("Удалить",,,2,"УдалитьСтроку",ПоставщикДанных);
	Кнопка.Подсказка = "Удалить текущую строку";
	Кнопка.Доступность = ТабличноеПоле.ИзменятьСоставСтрок;
	КоманднаяПанель.Добавить(Кнопка);

	КоманднаяПанель.Добавить(КоманднаяПанель.Кнопка("Разделитель",4));

	Кнопка = нных);
	Кнопка.Подсказка = "Обновить текущий список";
	КоманднаяПанель.Добавить(Кнопка);

КонецПроцедуры 




хотя имхо создать кнопки по умоланию, а потом удалить не нужные
  
Наверх
wwwICQ  
IP записан
 
Gimalaj
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 15. Февраля 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #223 - 18. Февраля 2011 :: 17:13
Печать  
Пишу следующий обработчик события:
Код
Выбрать все
//*********************************************************
Процедура КонтейнерТППриРедактированииЗначения(_ТП, Стр, Колонка, ТипРег, Значение)
	ТаблицаПолная.УстановитьЗначение(Стр, Колонка.Имя, Значение);

	ИтогоПоЦветам = 0;
	ТаблицаЦветов.ВыбратьСтроки();
	Пока ТаблицаЦветов.ПолучитьСтроку() = 1 Цикл
		ИтогоПоЦветам = ИтогоПоЦветам + ТаблицаПолная.ПолучитьЗначение(Стр, СокрЛП(ТаблицаЦветов.Цвет));;
	КонецЦикла;
	Сообщить(ИтогоПоЦветам);

	ТаблицаПолная.УстановитьЗначение(Стр, "Итого", ИтогоПоЦветам);
	ПоставщикДанных.Обновить();
КонецПроцедуры
 


Где ТаблицаПолная - это индексированная таблица, являющаяся источником данных для табличного поля. Однако обновления колонки "Итого" табличного поля не происходит. В чем может быть дело? Или для изменений значений ячеек в табличном поле нужно другие события отлавливать?
  
Наверх
 
IP записан
 
nixstill
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 14
Зарегистрирован: 19. Января 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #224 - 18. Февраля 2011 :: 22:02
Печать  
По поводу ДеревоЗначений, как же все таки загрузить плоскую таблицу. Для отображения иконок группы в виде папок? Ругается на существующие группы если загружаешь тз или итз с колонками "ЭтоГруппа, Уровень". Смущённый
  
Наверх
 
IP записан
 
Gimalaj
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 15. Февраля 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #225 - 21. Февраля 2011 :: 11:58
Печать  
Gimalaj писал(а) 18. Февраля 2011 :: 17:13:
Пишу следующий обработчик события:
Код
Выбрать все
//*********************************************************
Процедура КонтейнерТППриРедактированииЗначения(_ТП, Стр, Колонка, ТипРег, Значение)
	...................................................................
КонецПроцедуры
 




Сам разобрался, в чем дело, всем спасибо!  Улыбка
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #226 - 22. Февраля 2011 :: 04:53
Печать  
ПоставщикДанных.Справочник живет в "родной" форме списка этого справочника. МногострочнаяЧасть скрыта через Формекс.

Вопрос: как избавиться от СИСТЕМНЫХ 1С-ных окон "Объект будет помечен на удаление" и "Подтвердите отмену удаления объекта" соответственно при нажатии Del ? или "родную" форму использовать не рекомендуется?

Сопутствующий вопрос: не до конца понимаю - почему все же эти окна появляются? ведь ПостащикДанных действует со справочником через Спр=СоздатьОбъект("Спр"), и САМ справочник не ПОЗИЦИОНИРУЕТСЯ интерактивно в этот момент??
  
Наверх
ICQ  
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #227 - 22. Февраля 2011 :: 06:10
Печать  
Кстати, в ПоставщикДанных.Справочник.ert косячок обнаружил:

[code]
ЗаписьЖурналаРегистрации("Объект ""ПоставщикДанных"" (с) ООО ""ПрогТехБизнес"". ТипЗначений :: ""Справочник."+ВидСправочника+"""."
                                         ,"справочник"
                                         ,"RefUnmarkDel"
                                         ,СпрВладелец.ТекущийЭлемент()
                                         ,2);
[/code]

это должно на 5 строк повыше находиться (сразу после "СпрВладелец.СнятьПометкуУдаления();")
  
Наверх
ICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #228 - 22. Февраля 2011 :: 08:32
Печать  
[quote author=Dolly_EV link=1285520767/225#227 date=1298355054]Кстати, в ПоставщикДанных.Справочник.ert косячок обнаружил:
[/quote]

ага, [url=http://www.1cpp.ru/forum/YaBB.pl?num=1285520767/186#186]уже обсуждалось[/url], ждите обновлений...
  
Наверх
wwwICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #229 - 25. Февраля 2011 :: 09:12
Печать  
Добрый день!

Подскажите пожалуйста, а вот такой синтаксис (приводился в предыдущей теме) - это только была идея, а не реализация?
Код
Выбрать все
ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
ПоставщикДанных.ТипЗначений = "ИндексированнаяТаблица";

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


Вообще, можно привести пример работы с Поставщик.ПрямойЗапрос? А то получается пока только извращенным способом Улыбка А в демо-конфигурации Тестирование и разработка классов пример ТестПоставщикЗапрос не работает... Печаль
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #230 - 25. Февраля 2011 :: 11:00
Печать  
Kateryne писал(а) 25. Февраля 2011 :: 09:12:
Добрый день!

Подскажите пожалуйста, а вот такой синтаксис (приводился в предыдущей теме) - это только была идея, а не реализация?


наверно нужно смотреть в строну метода ЗаполнитьИзОбъекта
  
Наверх
wwwICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #231 - 25. Февраля 2011 :: 11:31
Печать  
О, точно. Спасибо, проглядела этот метод.
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #232 - 25. Февраля 2011 :: 11:45
Печать  
Хм... что-то я видимо не так делаю

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

	пДанныеПриборыУчета = пПоставщикДанныхПриборыУчета.Данные;    

	пПрямойЗапрос = СоздатьОбъект("ПрямойЗапрос");
	пПрямойЗапрос.Текст = "select parentext from SC3191"; // взяла простую таблицу и зачитала одно поле без условий, чтобы не биндить параметры

	пДанныеПриборыУчета.ЗаполнитьИзОбъекта(пПрямойЗапрос);

	пТаблПолеПриборыУчета = пПоставщикДанныхПриборыУчета.ТабличноеПоле;
	пТаблПолеПриборыУчета.СтильЗаголовков = 1;
	пТаблПолеПриборыУчета.СтильРамки = 1;
	пТаблПолеПриборыУчета.ЧередованиеЦветовСтрок = 0;

	пДанныеПриборыУчета.Обновить(); 

     

Данные отображаются, но при щелчке на строке с данными происходит вылет... Печаль
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #233 - 25. Февраля 2011 :: 12:56
Печать  
Kateryne писал(а) 25. Февраля 2011 :: 11:45:
Хм... что-то я видимо не так делаю
     ...
Данные отображаются, но при щелчке на строке с данными происходит вылет... Печаль

По всей видимости забыл обьявить переменную модуля формы -пПоставщикДанныхПриборыУчета. Ну т.е. выше всех процедур в самом начале модуля формы.
  
Наверх
 
IP записан
 
Gimalaj
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 15. Февраля 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #234 - 25. Февраля 2011 :: 12:57
Печать  
Kateryne писал(а) 25. Февраля 2011 :: 11:45:
Данные отображаются, но при щелчке на строке с данными происходит вылет... Печаль

Вылет самой 1С?
У тебя переменная, хранящая ПоставщикДанных (т.е. пПоставщикДанныхПриборыУчета) объявлена как переменная модуля?
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #235 - 25. Февраля 2011 :: 13:02
Печать  
zk96, Gimalaj,

точно, так и есть. Спасибо...
Все, пора на сегодня завязывать, внимательность уже никакая... Уже 11 часов работаю Печаль
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



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


1C++ rocks!

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

Еще три вопроса важных есть (разобью на три поста, а то они большие...):
1) скажите пожалуйста, а в ПоставщикДанных.Справочник нет возможности установить сортировку по убыванию? По одному реквизиту?

Метод СортироватьПоУбыванию() вроде не работает, и в документации он помечен как недействующий...

Может как-то запрос перехватить? С помощью ПриИзмененииЗапроса не получилось...
« Последняя редакция: 27. Февраля 2011 :: 22:27 - Kateryne »  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #238 - 27. Февраля 2011 :: 22:28
Печать  

2) Не могу разобраться со записью объектов...

есть внешняя обработка.
На ней есть ПоставщикДанных.Справочник (в виде списка слева), и поля ввода -  справа, доступные для редактирования.
В полях ввода отображаются данные текущей строки справочника.
Справочник имеет владельца, возможно это важно.
Надо, чтобы при изменении поля справа, изменялась строка справочника слева. (по кнопке Сохранить, например). Новой строки добавлять не надо, только изменять текущую.

Пишу такой код:
Код
Выбрать все
Процедура СохранитьИзмененияВСтроку()
	пПериодикаЛСТекущий = пТабличноеПоле.ТекущаяСтрока;
	пПериодикаЛСТекущий .Дата = рфДатаИзменения;
	пПериодикаЛСТекущий .Записать();
КонецПроцедуры 



ругается на "Не выбран элемент".

При этом Сообщить(пПериодикаЛСТекущий .Дата) показывает вполне вменяемые данные Печаль

Что вообще есть эта пТабличноеПоле.ТекущаяСтрока? Объект справочника, только идентификатор объекта, еще что-то? Если второе - то для записи надо отдельно искать элемент справочника? Тоже что-то не получается...
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #239 - 27. Февраля 2011 :: 22:28
Печать  
3) Не получается работать с отборами типа "ВСписке" - не возвращает значений.
Вот такой запрос (запрос не оптимален, знаю. Привожу для большей простоты), например, гарантированно возвращает два лицевых счета:
Код
Выбрать все
пТекстЗапроса = "  
	| select id from $Справочник.ЛицевыеСчета ЛС where $ЛС.Адрес in (
		|select Адреса.id as Код
		|from $Справочник.Адреса Адреса
		|  , $Справочник.Дома Дома
		|where Дома.id = $Адреса.Дом
		|  and $Дома.Номер = :Дом_Отбор
		|  and $Адреса.Квартира = :Квартира_Отбор)";  
		пЗапрос.УстановитьТекстовыйПараметр("Дом_Отбор", СокрЛП(рфДом));
	пЗапрос.УстановитьТекстовыйПараметр("Квартира_Отбор", СокрЛП(рфКвартира));  

пСписокЗначенийАдреса = СоздатьОбъект("СписокЗначений");

пЗапрос.ВыполнитьИнструкцию(пТекстЗапроса, пСписокЗначенийАдреса);  
вхОтбор = пДанные.Отбор.ТекущийЭлемент;
вхОтбор.ВидСравнения = "ВСписке";
вхОтбор.Значение = пСписокЗначенийАдреса;
вхОтбор.Использование = 1;
 



Отбор создается, значения его добавляются. Но ничего не возвращается.
Если вручную, а не программно, добавить значения для отбора в его окне - то все работает. Печаль

В обоих случаях генерируется такой запрос:
Код
Выбрать все
select top 20
sc1202.descr as Наименование,
sc1202.row_id as НомерСтрокиСправочника,
sc1202.id as ТекущийЭлемент,
case when sc1202.ismark = 1 then 1 else 0 end as ПометкаУдаления,
0 as ЭтоГруппа,
case when sc1202.ismark = 1 then 3 else 2 end as Пиктограмма,
sc1202.code as Код,
sc1202.SP3329 as Организация_Владелец,
sc1202.SP3352 as Организация_Управляющая,
sc1202.SP1204 as Адрес_Сортировка,
sc1202.SP3327 as Населенный_Пункт,
sc1202.SP1211 as Улица,
sc1202.SP1212 as Дом,
sc1202.SP3336 as Архивный,
sc1202.SP3330 as Адрес,
sc1202.SP1209 as Собственник
from SC1202 as sc1202 (nolock)
where sc1202.ID in (select val from #f_ТекущийЭлемент)
order by sc1202.descr, sc1202.row_id 



Если в нем заменить select val from #f_ТекущийЭлемент на то, что возвращает мой запрос, то все тоже работает.

Так и не поняла, в чем дело.

ЗЫ: если речь об отборе не по id, а например по коду, то отбор тоже работает...


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


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #240 - 28. Февраля 2011 :: 06:49
Печать  
Kateryne писал(а) 27. Февраля 2011 :: 22:28:
2) Не могу разобраться со записью объектов...

Пишу такой код:
Код
Выбрать все
Процедура СохранитьИзмененияВСтроку()	  
	пПериодикаЛСТекущий = пТабличноеПоле.ТекущаяСтрока;  
	пПериодикаЛСТекущий .Дата = рфДатаИзменения;
	пПериодикаЛСТекущий .Записать();
КонецПроцедуры 



ругается на "Не выбран элемент".



пТабличноеПоле.ТекущаяСтрока - это ССЫЛКА на элемент справочника, т.е. надо примерно так:

Код
Выбрать все
Процедура СохранитьИзмененияВСтроку()
	  лНашСпр=СоздатьОбъект("НашСпр");
	  Если лНашСпр.НайтиЭлемент(пТабличноеПоле.ТекущаяСтрока)=1 Тогда
		  лНашСпр.Дата=рфДатаИзменения;
		  лНашСпр.Записать();
		  ПоставщикДанных.Обновить();
	  КонецЕсли;
КонецПроцедуры 



по поводу 3). сам пока не силен Подмигивание, но для СпискаЗначений в запросе по-моему надо применять "УложитьСписокЗначений"
  
Наверх
ICQ  
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #241 - 28. Февраля 2011 :: 07:09
Печать  
Kateryne писал(а) 27. Февраля 2011 :: 20:31:
1) скажите пожалуйста, а в ПоставщикДанных.Справочник нет возможности установить сортировку по убыванию? По одному реквизиту?

Метод СортироватьПоУбыванию() вроде не работает, и в документации он помечен как недействующий...

Может как-то запрос перехватить? С помощью ПриИзмененииЗапроса не получилось...


У себя проверил. Вот так - все работает:
Код
Выбрать все
ДанныеСправочник.РеквизитСортировки="ВидСпр";
ДанныеСправочник.СортироватьПоУбыванию();
 



Наверное забыли установить РеквизитСортировки ?
а в документации написано не "не действующий", а "не вызывает действий объекта расширения" Подмигивание. Т.е. не вызывает изменений данных и относится только к отображению табл.поля
  
Наверх
ICQ  
IP записан
 
Amel
Junior Member
**
Отсутствует


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #242 - 28. Февраля 2011 :: 08:20
Печать  
Я что-то туплю... 2 дня не могу начать пользоваться расширением ДеревоЗначений поставщика данных.
Будьте добры, ткните в работающий пример.
Не получается увидеть иерархию.
Как нужно инициализировать данные для сего объекта?
  

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #243 - 28. Февраля 2011 :: 08:30
Печать  
2 Kateryne.
п. 1 - сортировка в динамических поставщиках всегда по возрастанию. В принципе для SQL формата БД сортировка в обратном порядке возможна, для DBF к сожалению нет. Допилка в данном случае возможна, но я к сожалению пока не у дел.
п. 2 - как правильно сказали ТекущаяСтрока - это всегда ссылка, собственно и ТекущиеДанные (насколько память не изменяет) тоже не могут быть изменены. Так что вариантов не много: менять данные и соответственно обновление строк вызовет чтение и изменение в ТП, хранить какую нибудь структуру для данных и при выводе строки устанавливать текст (не самый лучший вариант).
п. 3 - насколько я заметил результат запроса - поля id (т.е. не типизированные значения 1С), соответственно они укладываются неправильно. Типизируй значения, чтобы в списке содержались ссылки (элементы справочника, документа и пр.) и все должно получиться.
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #244 - 28. Февраля 2011 :: 08:31
Печать  
2 Amel
А ты колонку для пиктограмм указал?
Попробуй сначала просто добавить сам строки. А работающий пример где-то тут плавал, когда я только первый вариант дерева выкладывал (вроде даже еще версия была 3.07.ххх).
Сча поищу...
В общем вот до появления 4.1.1 я выкладывал пример. 100% гарантию работы дать не могу поскольку может менялись интерфейсы классов при переходе с 3.07 на 4.1, но вполне возможность что все работает Улыбка. Главное что пример есть Улыбка.
  

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


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #245 - 28. Февраля 2011 :: 08:44
Печать  
Спасибо. В примере указал колонку пиктограмм - и заработало!
  

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #246 - 01. Марта 2011 :: 06:16
Печать  
ПоставщикДанных.Справочник (Спр-подчиненный)
Как отловить момент интерактивного изменения "ПросмотрПоВладельцу" ???
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #247 - 01. Марта 2011 :: 07:39
Печать  
Выложена новая версия сборки классов + добавил конфигурацию с примерами реализации. Батарейки не все, поэтому сначала прийдется разобраться чуток Улыбка.
4.1.2 от 01.03.11 г.
- исправлены различные найденные ошибки в версии 4.1.1
- объекты "Отбор" и "ЭлементОтбора" переименованы с добавлением в имя "Объектv8."
- в поставку добавлена моя конфигурация на которой я провожу тестирование (как наглядный пример реализации расширений)
  

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


1C++ rocks!

Сообщений: 53
Зарегистрирован: 13. Июня 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #248 - 01. Марта 2011 :: 10:26
Печать  
Большое спасибо за класс и тестовую конфигурацию, как мне её раньше не хватало )
Кстати, а почему в тестовой конфигурации в справочнике договоров обнулен Владелец при открытии подчиненных элементов из справочника контрагентов ?

Если автор не против добавлю готовый вариант для начинающих  с библиотеками и подключенными классами.
  

4_1_2.rar ( 2116 KB | Загрузки )
Наверх
 
IP записан
 
ma3x
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 24. Июля 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #249 - 01. Марта 2011 :: 10:38
Печать  
Столкнулся с особенностью по поводу метода ЗаполнитьИзОбъекта(). В качестве поставщика использую итз, и заполняю его тз по кнопке Обновить. Если упрощенно привести пример


Код
Выбрать все
Процедура Обновить()
        тз	 = СоздатьОбъект("ТаблицаЗначений");
	тз.НоваяКолонка("Сотрудник","Справочник.Сотрудники");
	тз.НоваяКолонка("Число","Число");
	тз.НоваяКолонка("Строка","строка");

	тз.НоваяСтрока();
	тз.Сотрудник = Константа.Руководитель.Получить(РабочаяДата());
	тз.Число = 1;
	тз.Строка = "лала";
        ДанныеСостав.ЗаполнитьИзОбъекта(тз);
        ПоставщикДанныхСостав.Обновить();
КонецПроцедуры 



Первый раз отрабатывает нормально, а на втором происходит ошибка

Цитата:
ПоставщикДанных.ИндексированнаяТаблица::ДобавитьДанныеОКолонке(Строка Идентификатор=Строка, Строка ТипВид=Строка, Число Длина=0, Число Точность=0, Строка Заголовок=Строка, Число ШиринаКолонки=17, Число Итоги=0, Число ОтметкаНезаполненного=0) : Неверно указан номер строки!  Номер строки = 1, всего строк = 0
Колонка = Колонки.Добавить(Идентификатор);
{D:\SQL\Classes\ПоставщикДанных\ПоставщикДанных.ИндексированнаяТаблица.ert(198) }


А если использовать такой порядок следования столбцов, то ошибка не происходит

Код
Выбрать все
        тз.НоваяКолонка("Сотрудник","Справочник.Сотрудники");
        тз.НоваяКолонка("Строка","строка");
	тз.НоваяКолонка("Число","Число"); 


Я так понял ошибка происходит на колонке, которая следует за числовой.
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #250 - 03. Марта 2011 :: 03:53
Печать  
И таки еще раз здравствуйте!

Спасибо за прошлые ответы, разобралась вроде.
Но теперь другая проблема.
Вроде мелочь, а неприятно.

Сделала обработку, подключила ПоставщикДанных.Справочник на нее.
И открываю ее из другой обработки, внешней, для подбора (через ОткрытьПодбор) значения из справочника.

Так вот, форма сначала открывается слева, а потом где-то между загрузкой формы и ПоставщикДанных.Обновить исчезает и появляется по центру, как будто переоткрывается.
В результате такой неприятный эффект притормаживания. Можно как-то избавиться от него?
Стандартные формы так себя не ведут... Печаль Или если и ведут, то перемещение глазу не заметно.
ЗЫ: ОткрытьФормуМодально тоже не тормозит. Тормозит только ОткрытьФорму и ОткрытьПодбор.
« Последняя редакция: 03. Марта 2011 :: 06:01 - Kateryne »  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #251 - 03. Марта 2011 :: 07:33
Печать  
Вообще данный эффект может наблюдаться при использовании "привязок" и от "поставщика" не зависит.
  
Наверх
wwwICQ  
IP записан
 
mishav
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 8
Зарегистрирован: 26. Августа 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #252 - 03. Марта 2011 :: 10:52
Печать  
Добрый день,
А никто не может ткнуть или привести пример, как в поставщик данных в табличное поле вытащить реквизит подчиненного справочника?
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #253 - 03. Марта 2011 :: 11:13
Печать  
Anatol писал(а) 03. Марта 2011 :: 07:33:
Вообще данный эффект может наблюдаться при использовании "привязок" и от "поставщика" не зависит.

Ага ,есть такое дело...
и от "привязок" не зависит, специально проверил. Открывается в одном месте (не обязательно слева, я бы сказал - близко к месту кнопки вызова, что ли), а потом прыгает на последнюю запомненную позицию, как и дОлжно штатной форме. Я так понимаю, от этого не избавиться, т.к. в ПослеОткрытия (ПослеСоздания) инициируется поставщик, и на это уходит время.
Кстати, штатная форма ведет себя так же, просто глазу почти незаметно. а если форму с "поставщиком" открыть несколько раз (одну и ту же) - то прыгает только первая, последующие открываются и остаются там же.
  
Наверх
ICQ  
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #254 - 03. Марта 2011 :: 11:25
Печать  
mishav писал(а) 03. Марта 2011 :: 10:52:
Добрый день,
А никто не может ткнуть или привести пример, как в поставщик данных в табличное поле вытащить реквизит подчиненного справочника?


Например, так:

Код
Выбрать все
Перем ПоставщикДанных, ПодчиненныйСпр;
....
....
//======================================================================
//КонтейнерТП - Идентификатор реквизита на форме под ТабличноеПоле
Процедура КонтейнерТППриВыводеСтроки(ТП,ОформлениеСтроки, ДанныеСтроки, ТипРегиона)
	ТекЭлем = ДанныеСтроки; //Справочник-Владелец
	ПодчиненныйСпр.ИспользоватьВладельца(ТекЭлем);
	ПодчиненныйСпр.ВыбратьЭлементы(1);
	Пока ПодчиненныйСпр.ПолучитьЭлемент(1) = 1 Цикл
		//некие уловия
		лТекст = ПодчиненныйСпр.НужныйРеквизит;
	КонецЦикла;
	//// или так:
	//Если ПодчиненныйСпр.НайтиПоРеквизиту("блабла",блабла)=1 Тогда
	//	лТекст = ПодчиненныйСпр.НужныйРеквизит;
	//КонецЕсли;
	////вобщем, как-нибудь спозиционироваться

КонецПроцедуры // КонтейнерТПЦеныПриВыводеСтроки

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

	ДанныеСправочник = ПоставщикДанных.Данные;
	ДанныеСправочник.СоздатьКнопкиПоУмолчанию();
	ДанныеСправочник.НоваяКолонка("РеквизитСправочникаВладельца1");
	ДанныеСправочник.НоваяКолонка("РеквизитСправочникаВладельца2");

	ТабличноеПоле = ПоставщикДанных.ТабличноеПоле;
	ТабличноеПоле.СтильЗаголовков = 1;
	ТабличноеПоле.СтильРамки = 1;

	Колонки = ТабличноеПоле.Колонки;
	Колонка = Колонки.Добавить("РеквизитПодчиненногоСправочника");
	Колонка.Заголовок = "Реквизит подчиненного справочника";
КонецПроцедуры // ПослеОткрытия
....
....
ПодчиненныйСпр = СоздатьОбъект("Справочник.НашПодчиненныйСправочник");
 

  
Наверх
ICQ  
IP записан
 
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 записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #271 - 22. Марта 2011 :: 16:24
Печать  
Дело в том, что у меня есть удаления строк, не приводящих к этому событию. В частности, массовые удаления по кнопке, потом обновление таблицы. А еще - удаления по двойному щелчку.
У меня 4 таблицы. Две пары мастер-детейл, и по щелчку на одном мастере добавляются все строки мастер + детейл во вторую пару мастер-детейл.
А по щелчку по строке другого мастера, все строки этого мастера + детейлы должны удаляться.
И вот тут с обновлением и удалением - то ругается, что строк в табличном поле уже не столько, сколько надо Улыбка, то обращается к строке, которой уже нет, то еще что-нибудь.
И в основном все из-за события активизации, как я понимаю. Обновлять я все таблицы после удаления обновляю вручную. Но смена строки почему-то не сечется.

Но вы правы, в принципе можно вызывать удаления хотя бы одной строки табличного поля, а потом событие после удаления. Сейчас попробую, спасибо за идею.

ЗЫ: да, так работает. В принципе удаление текущей строки получилось к месту, так что даже и не коряво, как я сначала подумала. Спасибо Улыбка
« Последняя редакция: 22. Марта 2011 :: 19:50 - Kateryne »  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

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

Код
Выбрать все
пмТекУслугаДобав = пмТаблПолеУслугиДобав.ТекущиеДанные.УслугаДоговора;

 Неверно указан номер строки!  Номер строки = 1, всего строк = 0
УстановитьСвязиУслугиДобав()<<?>> 




Код на событии удаления - вызывается процедура УстановитьСвязиУслугиДобав:
Код
Выбрать все
Процедура УстановитьСвязиУслугиДобав()
	Если ПустоеЗначение(пмДанныеУслугиДобав.ТекущиеДанные) = 0 Тогда
		пмТекУслугаДобав = пмДанныеУслугиДобав.ТекущиеДанные.УслугаДоговора;
		пмТекНомерСтрокиТЗ = пмДанныеУслугиДобав.ТекущиеДанные.НомерСтрокиТЗ;
	КонецЕсли;
КонецПроцедуры 


Как бы заставить ТабличноеПоле понять, что строк в нем стало меньше? Обновляться теперь деталь нормально обновляется, связи устанавливаются. Но вот эта ошибка - ну не гасить же ее!
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

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

_____________009.ert ( 33 KB | Загрузки )
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #274 - 23. Марта 2011 :: 08:17
Печать  
2  Kateryne
После беглого просмортра.
Измени кнПоставщикДанныхПослеУдаления(тп)
вот так например:
Процедура кнПоставщикДанныхПослеУдаления(тп)
     пмДанные.Обновить();
     УстановитьСвязи();      
КонецПроцедуры
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #275 - 23. Марта 2011 :: 08:59
Печать  
zk96 писал(а) 23. Марта 2011 :: 08:17:
2  Kateryne
После беглого просмортра.
Измени кнПоставщикДанныхПослеУдаления(тп)
вот так например:
Процедура кнПоставщикДанныхПослеУдаления(тп)
     пмДанные.Обновить();
     УстановитьСвязи();      
КонецПроцедуры

Полностью не решит вопрос, т.к. в поставщике данных после удаления текущей строки сначала удаляется в ИТЗ текущая строка, а потом вызывается событие "ПослеУдаления" с передачей текущей строки. Когда удаляемая строка - последняя, это приводит к ошибке.
  
Наверх
ICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

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

если строк одна - то пмТаблПоле.ТекущаяСтрока выдает 1 в обоих процедурах, хотя фактически строк уже после удаления нет вообще.
Ерунда какая-то получается Печаль Может есть идеи, как сделать, чтобы нормально работало, пусть даже криво? Очень надо, к завтрашнему дню край Печаль А я уже всю голову сломала, и так пробую, и эдак, не выходит каменный цветок.
Я еще к тому же до конца не везде понимаю разницу между Данные.ТекущиеДанные, ТабличноеПоле.ТекущаяСтрока, ТабличноеПоле.ТекущийЭлемент, ТабличноеПоле.ТекущиеДанные итп...

UPD: пока придумала считать количество строк и получать текущие данные в ИндексированнойТаблице напрямую.
UPD2:
Хм... получилось вроде Улыбка
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

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

Тоже на индексированной таблице, нужно раскрасить некоторые из строк по условию.
Делаю процедуру
Код
Выбрать все
Процедура кнСписокУслугиДоговораДобавПриВыводеСтроки(тп, ОформлениеСтроки, ДанныеСтроки, ТипРегиона)
	Если ПустоеЗначение(ДанныеСтроки.УслугаДоговора) = 0 Тогда
		ОформлениеСтроки.ЦветТекста = огИнтерфейс.ПалитраЦветов.Синий;
	КонецЕсли;
КонецПроцедуры 



Но когда обновляется таблица - она переформируется через пмДанныеУслугиДобав.ЗаполнитьИзОбъекта(ТЗ); - событие ПриВыводеСтроки, похоже, срабатывает как-то не так или не в тот момент... и выдает такие ошибки:
Код
Выбрать все
Если ПустоеЗначение(ДанныеСтроки.УслугаДоговора) = 0 Тогда
 Неверно указан номер строки!  Номер строки = 2, всего строк = 0
 


То есть оно срабатывает и тогда, когда строк в табличном поле нет, получается.
Ну ладно, тут конечно можно и загасить ошибку, цвет строки - дело не критичное. Но все равно как-то странно получается.
Может я что-то не поняла, и надо по другому сделать?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #278 - 23. Марта 2011 :: 14:25
Печать  
Код
Выбрать все
Если ТипРегиона = 3 Тогда 

  

_____________009_001.ert ( 50 KB | Загрузки )
Наверх
wwwICQ  
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #279 - 23. Марта 2011 :: 14:42
Печать  
Цитата:
Синтаксис: ПриИзмененииОтбора(ИменаПолей)
Параметры:
•      ИменаПолей – тип: Строка. Имена полей, для которых изменилась настройка отбора.

Немного исправлю по реализации

Синтаксис: ПриИзмененииОтбора(ТабличноеПоле,ИменаПолей)
Параметры:
•      ТабличноеПоле – Тип: ПоставщикДанных.ТабличноеПоле Описание: Объект для управления ЭУ «ТабличноеПоле», в котором отображаются данные объекта-расширения
•      ИменаПолей – тип: Строка. Имена полей, для которых изменилась настройка отбора.
  
Наверх
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #280 - 23. Марта 2011 :: 14:58
Печать  
Anatol писал(а) 23. Марта 2011 :: 14:25:
Код
Выбрать все
Если ТипРегиона = 3 Тогда 



Это для ошибки с оформлением? Нет, я помнила ваш прошлый совет, и пробовала и с типом региона тоже. Это на форуме просто код привела без типа региона.
В общем, еще раз проверила - и с типом региона тоже выдает ту же ошибку.

Насчет проблемы с удалением - ага, глянула обработку, спасибо. Так тоже правда не работает, но принцип вашего предложения понятен. Т.е. вы предлагаете все же работать с ИТ, не трогая табличное поле.
Ок, спасибо, так видимо и сделаю.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #281 - 23. Марта 2011 :: 15:06
Печать  
тогда кидай сново тестовую обработку  Улыбка

а насчет ошибок в обработке... вроде не должно быть

зы а что именно не работает?
  
Наверх
wwwICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

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

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

Test_002.ert ( 33 KB | Загрузки )
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

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

Код
Выбрать все
	пмДанные.Обновить();
	пмДанные.ЗаполнитьИзОбъекта(ТЗ); 

  
Наверх
wwwICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

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

UPD: или вы хотите сказать, что обновление было нужно, потому что раньше удаляли строки, в начале?
Так я пробовала и вообще закомментировать удаление строк в начале, все равно была (и есть) ошибка, если местами как вы сказали не менять
  
Наверх
 
IP записан
 
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

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 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 записан
 
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 записан
 
Dmiter
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Местоположение: Киев
Зарегистрирован: 08. Января 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #315 - 25. Апреля 2011 :: 15:16
Печать  
Подскажите как лучше: Есть журнал - по нему строю ПоставщикДанных.Журнал - необходимо в табличном поле выводить из графы журнала (тип справочник) реквизит справочника. Строить в тексте запроса получение данных либо при выводе строки в табличном поле. Вопрос более в скорости работы и ресурсоемкости поскольку реквизит типа Строка, 120.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #316 - 26. Апреля 2011 :: 06:18
Печать  
в тексте запроса.
  
Наверх
 
IP записан
 
Dmiter
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Местоположение: Киев
Зарегистрирован: 08. Января 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #317 - 26. Апреля 2011 :: 06:53
Печать  
Eprst писал(а) 26. Апреля 2011 :: 06:18:
в тексте запроса.

Вопрос возник потому что насколько я понимаю функция ПриВыводеСтроки отрабатывает только когда выводится строка (то есть когда она видима), а запрос отработает сразу для всех документов журнала вне зависимости отображаются данные или нет. Также возникает сложность получения реквизита (сама графа журнала получается посредством case потом насколько я понимаю необходимо к case еще join справочника для получения реквизита.)
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #318 - 26. Апреля 2011 :: 06:59
Печать  
Запрос будет выполнен только для ограниченого количество строк = количеству ыидимых строк в ТП.
+ при вытаскивании реквизита из объекта в ПриВыводеСтроки ты будешь тащить объект целиком на клиента, в случае получения в самом запросе - нет.
  
Наверх
 
IP записан
 
Dmiter
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Местоположение: Киев
Зарегистрирован: 08. Января 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #319 - 26. Апреля 2011 :: 07:17
Печать  
Смотрел текст запроса в ПоставщикДанных.Журнал там нет ограничений по количеству выводимых в ТП строк Печаль Может не там где надо смотрел...? Там вообще запрос формируется через Journ несмотря на то что используется дополнительный журнал с тремя видами документов. И графа журнала не используется...
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #320 - 26. Апреля 2011 :: 07:30
Печать  
смотрел где ? В профайлере ?
Сам поставщик данных отправляет запрос на ограниченную выборку.
  
Наверх
 
IP записан
 
Dmiter
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Местоположение: Киев
Зарегистрирован: 08. Января 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #321 - 26. Апреля 2011 :: 07:43
Печать  
Нет. В процедуре ПриПолученииЗапроса. - структуразапроса.Колонки, структураЗапроса.Источник, структураЗапроса.Условия
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

А разве 1С 7.7 создает таблицу для каждого журнала? Вроде насколько я помню нет (а вот 8.х да Улыбка). Соответственно отсюда и запрос по journ + соединение с таблицами документов (если надо конечно) + условие по виду документа. То что отсутствует условия по графе вида журнала документов... кхм... не помню почему его отсеил... кхм... помоему потому что один хрен в основной индекс который используется не попадал и только путал, разницы вроде не особо много было.
Сам запрос строится без ограничений по количеству записей (и условий с какой позиции), за это отвечает конкретный провайдер 1C++ или 1SQLite. Он уже сам "отщипывает" кусок + ставит условия на "с какого места отщипнуть". А классы это по сути конструктор запроса, управление интерфейсом и прочими вещами. Сами данные он читает только в процедуре "Выбрать" Улыбка.
  

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


1C++ rocks!

Сообщений: 29
Местоположение: Киев
Зарегистрирован: 08. Января 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #323 - 26. Апреля 2011 :: 19:41
Печать  
vandalsvq писал(а) 26. Апреля 2011 :: 15:11:
А разве 1С 7.7 создает таблицу для каждого журнала? Вроде насколько я помню нет (а вот 8.х да Улыбка). Соответственно отсюда и запрос по journ + соединение с таблицами документов (если надо конечно) + условие по виду документа. То что отсутствует условия по графе вида журнала документов... кхм... не помню почему его отсеил... кхм... помоему потому что один хрен в основной индекс который используется не попадал и только путал, разницы вроде не особо много было.
Сам запрос строится без ограничений по количеству записей (и условий с какой позиции), за это отвечает конкретный провайдер 1C++ или 1SQLite. Он уже сам "отщипывает" кусок + ставит условия на "с какого места отщипнуть". А классы это по сути конструктор запроса, управление интерфейсом и прочими вещами. Сами данные он читает только в процедуре "Выбрать" Улыбка.

Спасибо за толковое объяснение. Тогда вопрос скорее всего будет по sql - в журнал добавлена графа - где из документов вытягивается реквизит (справочник). В запросе этот реквизит идет через case (так как в документах он в разных полях таблиц). Необходимо из реквизита (справочник) вытащить его атрибут - присоединение по on напрямую к полю не получается. В примере есть только получение атрибута от общего реквизита документов.
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #324 - 27. Апреля 2011 :: 04:18
Печать  
vandalsvq, прошу Вашей помощи или хотя бы подсказки! Использую класс ПоставщикДанных.ИндексированнаяТаблица не самой новой сборки. Просто не мог разобраться с новым и взял из действующего примера где-то из постов в теме(проблемная обработка, подборка классов и библиотеки во вложении). Обработка предназначена для просмотра менеджерами сводной таблицы из нескольких документов. Сначала грешил на обработку(Подтоварка), которая создает документы, но там используется тот же функционал, что и в других модулях конфигурации. Для просмотра документов, которые создает Подтоварка используется обработка(Просмотр) из архива, которая и использует ПоставщикДанных.ИндексированнаяТаблица. После активного её использования менеджерами было замечено общее падение производительности в работе пользователей, использующих данный функционал, которое заключается в медленном переходе по позициям справочника, задержке при установке отборов на 1-5-10 сек. А также, при нажатии на кнопки экранных форм,  действия либо не совершаются и экран становится серым, а кнопки - недоступными на 1-2-10 секунд, либо действие совершается с большим запозданием - 1-5-10 секунд. Причем, наблюдается даже намного позже после использования. Замеры производительности в отладчике 1с ничего не дали.  Переиндексация баз sql ничего не дает, обрезали базу с 18 до 10Г - тоже не помогло.
Может ли такой "эффект" быть от использования этой версии ПоставщикаДанных? Возможно, где-то в коде я допускаю ошибки из-за которых такой эффект?
  

SystemData.rar ( 1693 KB | Загрузки )

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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #325 - 27. Апреля 2011 :: 05:08
Печать  
Dmiter писал(а) 26. Апреля 2011 :: 19:41:
В запросе этот реквизит идет через case (так как в документах он в разных полях таблиц). Необходимо из реквизита (справочник) вытащить его атрибут - присоединение по on напрямую к полю не получается. В примере есть только получение атрибута от общего реквизита документов.


А чего, без case ужо не судьба ?
А текст запроса покажешь ?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #326 - 27. Апреля 2011 :: 08:07
Печать  
2 al_zzz для начала попробуй создавать индексы с использованием *

Код
Выбрать все
ДобавитьИндекс(".....", "*....") 



зы покажи замеры из отладчика
  
Наверх
wwwICQ  
IP записан
 
Dmiter
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Местоположение: Киев
Зарегистрирован: 08. Января 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #327 - 27. Апреля 2011 :: 12:24
Печать  
Eprst писал(а) 27. Апреля 2011 :: 05:08:
Dmiter писал(а) 26. Апреля 2011 :: 19:41:
В запросе этот реквизит идет через case (так как в документах он в разных полях таблиц). Необходимо из реквизита (справочник) вытащить его атрибут - присоединение по on напрямую к полю не получается. В примере есть только получение атрибута от общего реквизита документов.


А чего, без case ужо не судьба ?
А текст запроса покажешь ?

Код
Выбрать все
Колонки:select
	ТекущийОбъект.iddocdef as [ТекущийДокумент_вид]
	,ТекущийОбъект.dnprefix as [ПрефиксНомера]
	,ТекущийОбъект.row_id as [НомерСтрокиЖурналаДокументов]
	,ТекущийОбъект.docno as [НомерДокументаСортировка]
	,ТекущийОбъект.date_time_iddoc as [ПозицияДокумента]
	,case when ТекущийОбъект.ismark = 1 then 7 else
		case when ТекущийОбъект.closed&1 = 1 then 8 else 6 end
	end as [Пиктограмма]
	,ltrim(ТекущийОбъект.docno) as [НомерДокумента]
	,dbo.ConvertIDTimeToTime(substring(ТекущийОбъект.date_time_iddoc,9,6)) as [ВремяДокумента]
	,left(ТекущийОбъект.date_time_iddoc,8) as [ДатаДокумента $Дата]
	,ТекущийОбъект.iddoc as [ТекущийДокумент $Документ]
	,ТекущийОбъект.iddocdef AS [ВидДокумента $ВидДокументаПредставление]
	,ТекущийОбъект.closed&1 AS [Проведен]
	,case when ТекущийОбъект.ismark = 1 then 1 else 0 end as [ПометкаУдаления]
	,$ТекущийОбъект.IDD as [IDD $Строка]
	,$ТекущийОбъект.Автор as [Автор $Справочник.Пользователи]
	,$ТекущийОбъект.Фирма as [Фирма $Справочник.Фирмы]
	,$ТекущийОбъект.ТипУчета as [ТипУчета $Число]
	,$ТекущийОбъект.ФинУчет as [ФинУчет $Число]
	,$ТекущийОбъект.ИзПЛ as [ИзПЛ $Число]
	,case ТекущийОбъект.iddocdef
		when 7849 then $ДокТ_РасходнаяНакладная.Контрагент
		when 6016 then $ДокСчет.Контрагент
		when 16410 then $ДокТ_ЗаявкаНаВозврат.Контрагент
	end as [Покупатель $Справочник.Контрагенты]
	,case ТекущийОбъект.iddocdef
		when 7849 then $ДокТ_РасходнаяНакладная.ТорговаяТочка
		when 16410 then $ДокТ_ЗаявкаНаВозврат.ТорговаяТочка
	end as [ТорговаяТочка $Справочник.ТорговыеТочкиКонтрагента]
	,case ТекущийОбъект.iddocdef
		when 16410 then $ДокТ_ЗаявкаНаВозврат.СуммаСНДС
		when 7849 then $ДокТ_РасходнаяНакладная.СуммаСНДС
		when 6016 then $ДокСчет.СуммаСНДС
	end as [СуммаСНДС $Число]
	,$ДокТ_РасходнаяНакладная.ПолученДокумент AS [Получен $Строка]
Источник:
from ЖурналДокументов as ТекущийОбъект $nolock
	left join Документ.Счет as ДокСчет $nolock
		on ТекущийОбъект.iddoc = ДокСчет.iddoc
	left join Документ.Т_РасходнаяНакладная as ДокТ_РасходнаяНакладная $nolock
		on ТекущийОбъект.iddoc = ДокТ_РасходнаяНакладная.iddoc
	left join Документ.Т_ЗаявкаНаВозврат as ДокТ_ЗаявкаНаВозврат $nolock
		on ТекущийОбъект.iddoc = ДокТ_ЗаявкаНаВозврат.iddoc


Условия:where (ТекущийОбъект.iddocdef in (6016,7849,16410)) 


Необходимо получить атрибут АдресДоставки справочника ТорговаяТочка
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #328 - 27. Апреля 2011 :: 12:51
Печать  
Код
Выбрать все
, RTRIM($ТТ.АдресДоставки) AS [Адрес доставки]

...

left join Справочник.ТорговыеТочкиКонтрагента AS ТТ $nolock ON (case ТекущийОбъект.iddocdef
		when 7849 then $ДокТ_РасходнаяНакладная.ТорговаяТочка
		when 16410 then $ДокТ_ЗаявкаНаВозврат.ТорговаяТочка
	end)  = ТТ.id 



это не для граф отбора
  
Наверх
wwwICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #330 - 28. Апреля 2011 :: 05:56
Печать  
Заместо Case  используй coalesce (http://msdn.microsoft.com/ru-ru/library/ms190349.aspx)

+ сравнение на вид документа   =$ВидДокумента36.Реализация

+ не видно, где ты вообще графу отбора используешь, она, если что в _1SCRDOC валяется.

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


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

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

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


1C++ rocks!

Сообщений: 29
Местоположение: Киев
Зарегистрирован: 08. Января 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #332 - 29. Апреля 2011 :: 07:27
Печать  
Anatol писал(а) 27. Апреля 2011 :: 12:51:
Код
Выбрать все
, RTRIM($ТТ.АдресДоставки) AS [Адрес доставки]

...

left join Справочник.ТорговыеТочкиКонтрагента AS ТТ $nolock ON (case ТекущийОбъект.iddocdef
		when 7849 then $ДокТ_РасходнаяНакладная.ТорговаяТочка
		when 16410 then $ДокТ_ЗаявкаНаВозврат.ТорговаяТочка
	end)  = ТТ.id 



это не для граф отбора

Спасибо помогло...
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #333 - 03. Мая 2011 :: 03:46
Печать  
Anatol писал(а) 27. Апреля 2011 :: 08:07:
2 al_zzz для начала попробуй создавать индексы с использованием *

Код
Выбрать все
ДобавитьИндекс(".....", "*....") 



зы покажи замеры из отладчика

Всё! Проблема разрешилась. Нужно было всего лишь больше поставить "Период опроса изменений Базы данных" и "Время захвата таблиц Базы данных" в Параметры+Общие. Проблема оказалась не в поставщике!
  

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #334 - 04. Мая 2011 :: 07:01
Печать  
Уважаемые специалисты, скажите пожалуйста, как для табличного поля на основе документа отображать текущий интервал отбора дат? Кнопка на командной панели есть, все работает, но пользователю хочется видеть текущий интервал, а как его смену перехватить - я не знаю.
  
Наверх
 
IP записан
 
viddik
Junior Member
**
Отсутствует



Сообщений: 37
Зарегистрирован: 22. Октября 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #335 - 04. Мая 2011 :: 09:41
Печать  
ildary писал(а) 04. Мая 2011 :: 07:01:
пользователю хочется видеть текущий интервал

Если речь о ПоставщикеДанных.Документ, то например:
Код
Выбрать все
ПериодСтр(ПоставщикДанных.Данные.Отбор.ДатаДокумента.ЗначениеС, ПоставщикДанных.Данные.Отбор.ДатаДокумента.ЗначениеПо);
 

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #336 - 05. Мая 2011 :: 05:55
Печать  
Спасибо за совет, но - а когда вызывать данную процедуру? Хочется, чтобы она срабатывала после каждой смены интервала.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #337 - 05. Мая 2011 :: 06:07
Печать  
в формулу текстового реквизита кинь, который будет тебе отображать интервал.. и всё собственно.
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #338 - 05. Мая 2011 :: 06:39
Печать  
Уважаемый Eprst на мисте мне не рекомендовал подобное, из-за падения производительности, я это запомнил Улыбка
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #339 - 05. Мая 2011 :: 06:43
Печать  
ildary писал(а) 05. Мая 2011 :: 06:39:
Уважаемый Eprst на мисте мне не рекомендовал подобное, из-за падения производительности, я это запомнил Улыбка


Где я такое говорил ?
Ссылку дай.
Да и.. формула в текстовом реквизите формуле рознь.
Если ты в неё запихаешь обновление формы, то да, такой способ в топку - он грузит проц на 100 %.
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #340 - 05. Мая 2011 :: 06:53
Печать  
Это давно уже было - в прошлом году и на другую тему, но тоже насчет вывода инфы через постоянно перерисовывающееся текстовое поле.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #341 - 05. Мая 2011 :: 12:29
Печать  
если ты особо желаешь извратиться и отловить момент выбора, то попробуй повесить свою процедуру с выбором даты   Круглые глаза Озадачен
  
Наверх
wwwICQ  
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #342 - 05. Мая 2011 :: 12:44
Печать  
А нельзя ли как-то обойтись без Офисных активиксов?
типа:
MSCOMCTL.OCX
А то требуеться иметь установленный офис иначе не хочет класс работать.
С опенофисом поставщик работать в упор не хочет.
караул помогите.

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #343 - 05. Мая 2011 :: 12:46
Печать  
varelchik писал(а) 05. Мая 2011 :: 12:44:
А нельзя ли как-то обойтись без Офисных активиксов?
типа:
MSCOMCTL.OCX
А то требуеться иметь установленный офис иначе не хочет класс работать.
С опенофисом поставщик работать в упор не хочет.
караул помогите.


и не говори...
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=25437d98-51d0-41c1-b...

зы а под линуксом вообще никогда не заработает  Плачущий
  
Наверх
wwwICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #344 - 05. Мая 2011 :: 13:19
Печать  
varelchik писал(а) 05. Мая 2011 :: 12:44:
А нельзя ли как-то обойтись без Офисных активиксов?
типа:
MSCOMCTL.OCX
А то требуеться иметь установленный офис иначе не хочет класс работать.
С опенофисом поставщик работать в упор не хочет.
караул помогите.


MSCOMCTL.OCX никакого отношения к офису не имеет вообще, если что
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #345 - 05. Мая 2011 :: 13:51
Печать  
Пардон пардон.
а что это тогда за класс:
MSComctlLib.ImageListCtrl
почему на машинах где нет офиса он ругается именно на него?
в реестре готорится именно о активиксе mscomctl.ocx
или я что-то не догоняю?
если так, то ткните носом как запустить поставщика без офиса.
с закладками я кое как разобрался.
(я имел ввиду класс УправлениеЗакладками он использует fm20 и fm20enu).
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #346 - 05. Мая 2011 :: 13:58
Печать  
  
Наверх
wwwICQ  
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #347 - 05. Мая 2011 :: 14:09
Печать  
Anatol писал(а) 05. Мая 2011 :: 13:58:


Увы.
Правда я пробовал без перезагрузки.
потому как закладки пошли без перезагруза.
  
Наверх
 
IP записан
 
nvg
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 72
Местоположение: Киев
Зарегистрирован: 14. Сентября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #348 - 05. Мая 2011 :: 15:09
Печать  
varelchik писал(а) 05. Мая 2011 :: 13:51:
а что это тогда за класс:
MSComctlLib.ImageListCtrl
почему на машинах где нет офиса он ругается именно на него?
в реестре готорится именно о активиксе mscomctl.ocx
или я что-то не догоняю?

У меня ругань была подобная, когда comdlg32.ocx не был зарегистрирован, или лицензия для него не установлена...
Хотя - могу ошибаться.

Для филиалов подготовил набор библиотек и обработку для их регистрации.
  
Наверх
ICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #349 - 05. Мая 2011 :: 17:56
Печать  
http://www.1cpp.ru/forum/YaBB.pl?num=1248941896/505#505

особое внимание обратить на ссылку с мисты! (16 пост)
comdlg32 предпочтительней брать здесь
как я понял нужна лицензия на офис

upd: удалось запустить все это безобразие в Linux  Очень довольный
« Последняя редакция: 06. Мая 2011 :: 06:47 - Anatol »  
Наверх
wwwICQ  
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #350 - 10. Мая 2011 :: 05:23
Печать  
Anatol писал(а) 05. Мая 2011 :: 17:56:
http://www.1cpp.ru/forum/YaBB.pl?num=1248941896/505#505

особое внимание обратить на ссылку с мисты! (16 пост)
comdlg32 предпочтительней брать здесь
как я понял нужна лицензия на офис

upd: удалось запустить все это безобразие в Linux  Очень довольный

А у нас что 7.7 уже и под Linux работает?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #351 - 10. Мая 2011 :: 06:49
Печать  
ну не то чтобы работает, проходит проверку на проф пригодность =)
а так, да...

http://www.etersoft.ru/
  
Наверх
wwwICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #352 - 10. Мая 2011 :: 09:21
Печать  
2 Anatol, может тогда сделаешь опиум для народа? Может обработку или сборку всего что нужно... поможешь проекту?  Подмигивание
  

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



Сообщений: 56
Местоположение: Барнаул
Зарегистрирован: 28. Марта 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #353 - 12. Мая 2011 :: 03:50
Печать  
Добрый день, подскажите, как развернуть программно ветку дерева
нашел в классе процедуру РазвернутьУзелДерева(Полный путь)
не получается использовать пишу так:
ДеревоЗначений.РазвернутьУзелДерева(ПолнПуть);
Ошибка:Поле агрегатного объекта не обнаружено (РазвернутьУзелДерева)
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #354 - 13. Мая 2011 :: 12:52
Печать  
Уважаемые специалисты, скажите пожалуйста, как сделать следующее: создано табличное поле на основе документа, оно прекрасно работает, но у него есть визуальное неудобство - значки документов не похожи на подобные из обычного журнала. Подключаем иконки аля Журнал, после чего значки журнала показываются нормально, но при включении отбора по полю вместо красивого значка выводится что-то не то (иконка похожа на помеченную на удаление операцию). Скажите пожалуйста как и рыбку съесть (получить иконки проведенности нормальные) и не потерять иконку отбора?

p.s. 2-й вопрос - хотелось сделать внизу табличного поля вывод комментария текущего документа, но он не хочет своевременно рисоваться. Такое ощущение, что на смену текущей строки ему все равно - для его перерисовки требуется нажать кнопку "Обновить" табличного поля. Выводится так: надпись с вызовом функции в формуле, функция такая:

     Попытка //получим тек данные в попытке - они могут быть еще проинициализированы
           
           ТекДанные = пдДокум.ТабличноеПоле.ТекущиеДанные;
           ТекЗнач        = ТекДанные.Получить( "ТекущийДокумент" );
           
     Исключение
           
           Возврат "";
           
     КонецПопытки;
     
     Если ПустоеЗначение( ТекЗнач ) = 1 Тогда //Возврат ""
           
           Возврат "";
           
     КонецЕсли;
     
     Возврат ТекЗнач.Комментарий;
  
Наверх
 
IP записан
 
Dmiter
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Местоположение: Киев
Зарегистрирован: 08. Января 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #355 - 18. Мая 2011 :: 17:00
Печать  
Возникла необходимость дать пользователю возможность отбора в журнале документов по части строки из поля таблицы. Есть ли возможность ограничить отбор значениями из списка значений, формируемого программно. Пользователь выбирает отбор по представлению элемента в списке, а фильтр на данные накладывается согласно значению данного элемента. (нигде не нашел, да и в коде порылся вроде бы нет, самому переделывать не хочется для возможности обновления класса). Если нет то планируется ли.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

2 ildary1. Коллекция картинок лежит в папке с классом. Ее надо перерисовывать и заменять те картинки что там на твои, а не просто подменять один набор другим. 2. Посмотри событие табличного поля "ПриАктивизацииСтроки" (в доке 1С++, а не класса)

2 DmSk, ПоставщикДанных.Данные.Развернуть(ПутьКРодителю) (или пустой)
  

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


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

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

4.2.4 от 20.05.11 г.
- Исправлены ошибки в расширении «ПоставщикДанных.ДеревоЗначений» (перемещение и сортировка в дереве).
- Добавлен новый атрибут «ВыводитьПиктограммуОтбора» для объекта «ПоставщикДанных.ТабличноеПоле».
- Исправлены незначительные ошибки в объекте «ПоставщикДанных.Отбор».

Класс "ДеревоЗначений"
1.1.3 от 20.05.11 г.
- Исправлена ошибка в работе метода «ПереместитьСтроку».

Все брать в главной теме. Обновлять и "Дерево значений" и "Поставщика данных".
  

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


I Love YaBB 2!

Сообщений: 142
Зарегистрирован: 26. Декабря 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #358 - 23. Мая 2011 :: 03:45
Печать  
Сначало благодарность Улыбка. Спасибо, отличный набор классов, очень помогает в работе.
Теперь дело.
ПоставщикДанных.ТабличнаяЧасть очищает значения невидимых реквизитов табличной части документа при сортировке, сдвиге и удалении строк. Что не есть хорошо.
Если подобный баг уже описан, прошу прощения всю ветку читать времени нет.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


I Love YaBB 2!

Сообщений: 142
Зарегистрирован: 26. Декабря 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #360 - 24. Мая 2011 :: 05:41
Печать  
У меня получилось исправить. Добавил свойство видимость у вложенной структуры. После заполнения видимых колонок из формы, прошелся по метаданным и добавил невидимые. При создании колонок ТП создавал только видимые. Все остальное работает.  Улыбка
Хороший у тебя код, легко читать и вносить изменения.
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



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

Заодно хотелось бы узнать, можно ли сделать следующее:
Табличное поле с поставщиком данных = ИндексированнаяТаблица,
в панели кнопок выводим кнопки фильтра, после чего при нажатии на эти кнопки делаем перехват вызова и применяем свою фильтрацию (либо ее отмену).
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #362 - 25. Мая 2011 :: 23:38
Печать  
Сам спросил - сам сделал Улыбка
В файл ПоставщикДанных.ИндексированнаяТаблица.ert в процедуру
ПриВыбореКоманды() - она сейчас пустая вставить строки

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

после чего у таб. поля можно создавать процедуру, где вертеть результатом в свое удовольствие

например вот так

Процедура тпДокПриВыполненииКоманды( ТабПоле, ФСО, НомерКоманды )
     
     Если НомерКоманды = 208 Тогда
           
           Предупреждение( "Опа!", 120 );
        
     КонецЕсли;
     
КонецПроцедуры
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #363 - 06. Июня 2011 :: 12:34
Печать  
Уважаемые специалисты, скажите пожалуйста, в чем может быть ошибка:
при создании табличного поля если выполнить заремленную строку, то происходить утечка gdi:

Картинка = СоздатьОбъект( "Картинка" );
Картинка.Загрузить( ПутьККаталогуКартинок + "icons-journ.bmp" );
//ТабПоле.УстановитьСистемныеКартинки( Картинка, 16 );

не помогли ни помещение на форму обычной ТЗ, ни добавление в ПриЗакрытии() обнуления переменной ТабПоле - в ПриЗакрытии() просто падает, в ПослеЗакрытия() не устраняет утечку. Пробовал переменную Картинка описать в переменных для всего модуля - не помогло.

p.s. могу выложить глючащую обработку - журнал документов для ТиС.
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #364 - 06. Июня 2011 :: 18:48
Печать  
ildary писал(а) 06. Июня 2011 :: 12:34:
...p.s. могу выложить глючащую обработку - журнал документов для ТиС.

Выложи.
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #365 - 07. Июня 2011 :: 07:04
Печать  
Интересная ситуация: создал тестовый пример, который отличается от рабочего только добавлением процедур из ГМ, включаю локальный инит библиотек (1С++, sqlite, formex), после чего обнаружил, что выполнение тестового примера на чистой базе ТиС не приводит к утечке. Что тут можно сделать, куда копать?

p.s. тестовый пример на всякий случай прилагаю. 1С++ версия 3.2.3.13, 1sqlite.dll - 1.0.2.3, FormEx.dll - 2.0.5.101, классы таб поля - самые свежие.
  

__________________002.ert ( 44 KB | Загрузки )
Наверх
 
IP записан
 
IoWa
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 15. Декабря 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #366 - 09. Июня 2011 :: 09:36
Печать  
А можете подсказать как управлять списком всплывающих команд Открыть,Просмотр,Отключить Отбор и т.д.),после нажатия правой кнопки мыши по табличному полю поставщика?
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #367 - 17. Июня 2011 :: 06:40
Печать  
Вопрос опытным форумчанам - возьмется ли кто-нибудь посмотреть за оплату, почему происходит утечка объектов gdi с последующим вылетом обработки ? Самому справиться ума не хватает, а использовать табличное поле очень хочется. Вышлю базу с обработкой и длл-ками, оплачу, сколько скажете.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #368 - 17. Июня 2011 :: 11:49
Печать  
если ты всетаки по предыдущему вопросу ,то все твои проблы из-за пересоздания объекта ПоставщикДанных
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #369 - 17. Июня 2011 :: 11:54
Печать  
Спасибо за ответ, а как этого можно избежать?

p.s. Сделал вот так, но утечка продолжается:


     Если ПустоеЗначение( БылоСоздание ) = 1 Тогда
           
           БылоСоздание = 1;
           ПостДанных = СоздатьОбъект( "ПоставщикДанных" );
           
           ПостДанных.КонтейнерТабличногоПоля  = ИмяТабПоля;
           ПостДанных.КонтейнерКоманднойПанели = ИмяКоманднПанели;
           ПостДанных.ТипЗначений                        = ТипЗначений;
           
     КонецЕсли;
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #370 - 17. Июня 2011 :: 12:15
Печать  
icq
  
Наверх
wwwICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #371 - 23. Июня 2011 :: 07:52
Печать  
Уважаемые специалисты, есть ли способ сделать следующее: табличное поле на основе ИТЗ, числовая колонка "сумма документа"  с форматом ячейки "Ч015.2", 
хочется, чтобы для нулевых значений выводилось не "0,00", а "" - для наглядности. Можно конечно завести 2 колонки - реальные значения и отображаемые, но хотелось бы без подобного, т.к. колонок с суммами может быть много.
  
Наверх
 
IP записан
 
Kolhoznik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 32
Зарегистрирован: 11. Февраля 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #372 - 23. Июня 2011 :: 10:00
Печать  
Формат "Ч-.2" не подойдет?
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #373 - 23. Июня 2011 :: 10:59
Печать  
Kolhoznik писал(а) 23. Июня 2011 :: 10:00:
Формат "Ч-.2" не подойдет?


Спасибо большое, про знак - я и забыл (особенно трудно вспомнить то, чем никогда и не пользовался  Улыбка ).
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #374 - 30. Июня 2011 :: 07:53
Печать  
Уважаемые специалисты!
Возникла следующая проблема. Использую "ПоставщикДанных.Справочник" для подчиненного справочника в форме списка справочника. При изменении текущего элемента выполняю:
              
Код
Выбрать все
ПД.Данные.Владелец = ТекущийЭлемент();
		ПД.ТабличноеПоле.Обновить(); 


Всё отрабатывается корректно, вот только фокус у многострочной части теряется и невозможен становится быстрый набор клавиатурой. Как правильно это реализовать?
  

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #375 - 30. Июня 2011 :: 08:22
Печать  
а если по ветке поискать?
  
Наверх
wwwICQ  
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #376 - 30. Июня 2011 :: 09:52
Печать  
Anatol писал(а) 30. Июня 2011 :: 08:22:
а если по ветке поискать?

Надеялся, что за полгода это исправили... Печаль
Я так понимаю, первый пример проблемы не решает, так как инфа по подчиненным обновляется только при активизации окошка, а второй добавит кучу проблем в других обработках. Ждем третьего...
« Последняя редакция: 30. Июня 2011 :: 11:20 - al_zzz »  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #377 - 04. Июля 2011 :: 10:09
Печать  
Товарищи, поделитесь, пожалуйста, примером с "ПоставщикДанных.ПрямойЗапрос" или ссылкой, или формой подбора, на ПоставщикеДанных реализованной. Ну очень надо!
  

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


I Love YaBB 2!

Сообщений: 72
Местоположение: Киев
Зарегистрирован: 14. Сентября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #378 - 04. Июля 2011 :: 11:07
Печать  
al_zzz писал(а) 04. Июля 2011 :: 10:09:
Товарищи, поделитесь, пожалуйста, примером с "ПоставщикДанных.ПрямойЗапрос" или ссылкой, или формой подбора, на ПоставщикеДанных реализованной. Ну очень надо!

Выдержка из документации:
Код
Выбрать все
Объект «ПрямойЗапрос» реализует механизмы для выполнения прямых запросов после их преобразования из языка запросов объявленного для данного класса, в язык запросов для ВК 1С++ и 1sqlite. КОП отвечает за обработку запроса в части:
•	Директив языка SQL
•	Языковых конструкций (функций и значений)
•	Реквизитов метаданных конфигурации
•	Формировании виртуальных таблиц данных
•	Подстановки параметров (в т.ч. и предопределенных)
 


Т.е. "ПоставщикДанных.ПрямойЗапрос" - служебный класс, не является поставщиком данных.
Или я не правильно понял вопрос?
  
Наверх
ICQ  
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #379 - 05. Июля 2011 :: 01:04
Печать  
nvg писал(а) 04. Июля 2011 :: 11:07:
Т.е. "ПоставщикДанных.ПрямойЗапрос" - служебный класс, не является поставщиком данных.
Или я не правильно понял вопрос?

Всё верно. Я ошибся... Но не могу найти примеры работы с ПоставщикомДанных - те что есть, в основном, под старые версии класса. Вообще задача у меня реализовать форму подбора с кое-какой доп информацией в таблицах. Могу и сам наваять, но не до конца понимаю логику работы с классом, а поэтому боюсь сделать неоптимально.
  

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


I Love YaBB 2!

Сообщений: 72
Местоположение: Киев
Зарегистрирован: 14. Сентября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #380 - 05. Июля 2011 :: 06:52
Печать  
al_zzz писал(а) 05. Июля 2011 :: 01:04:
не могу найти примеры работы с ПоставщикомДанных - те что есть, в основном, под старые версии класса.

МД с примерами есть в архиве с классом, в этой и предыдущей ветке были примеры тоже.

al_zzz писал(а) 05. Июля 2011 :: 01:04:
Вообще задача у меня реализовать форму подбора с кое-какой доп информацией в таблицах. Могу и сам наваять, но не до конца понимаю логику работы с классом, а поэтому боюсь сделать неоптимально.

По примерам, в принципе, разобраться не сложно, да и в теме информации не мало. Очень хорошая документация к классу прилагается. Что конкретно не понятно в логике работы с классом?

А форма подбора - понятие достаточно общее  Подмигивание Подбор какого типа данных, какая информация нужна дополнительная нужна, в каком виде?
« Последняя редакция: 05. Июля 2011 :: 08:14 - nvg »  
Наверх
ICQ  
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #381 - 05. Июля 2011 :: 10:42
Печать  
nvg писал(а) 05. Июля 2011 :: 06:52:
Что конкретно не понятно в логике работы с классом?

А форма подбора - понятие достаточно общее  Подмигивание Подбор какого типа данных, какая информация нужна дополнительная нужна, в каком виде?

Нужен подбор номенклатуры в документ.
Конкретно непонятно, как к "ПоставшикДанных. Справочник" присоединить таблицу с остатками регистра и таблицу, где хранится цена товара. Думаю, что откажусь от реализации из-за медленной работы класса "ПоставщикДанных.Справочник" - даже при получении одних только остатков по фирме он значительно уступает штатному подбору.
  

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


I Love YaBB 2!

Сообщений: 72
Местоположение: Киев
Зарегистрирован: 14. Сентября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #382 - 05. Июля 2011 :: 11:34
Печать  
al_zzz писал(а) 05. Июля 2011 :: 10:42:
Нужен подбор номенклатуры в документ.
Конкретно непонятно, как к "ПоставшикДанных. Справочник" присоединить таблицу с остатками регистра и таблицу, где хранится цена товара. Думаю, что откажусь от реализации из-за медленной работы класса "ПоставщикДанных.Справочник" - даже при получении одних только остатков по фирме он значительно уступает штатному подбору.  


Дополнительные таблицы присоединяю методом ДобавитьСоединениеДанных(), потом ДобавитьКолонкуДанных() - добавляю нужные колонки.

По поводу скорости тоже не в воссторге, но, может, я просто "не умею его готовить" Подмигивание
У меня пока слишком много данных на форме - текстовые поля и таблицы, обновляемые в ПриАктивизацииСтроки().
  
Наверх
ICQ  
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #383 - 05. Июля 2011 :: 11:58
Печать  
nvg писал(а) 05. Июля 2011 :: 11:34:
Дополнительные таблицы присоединяю методом ДобавитьСоединениеДанных(), потом ДобавитьКолонкуДанных() - добавляю нужные колонки.

По поводу скорости тоже не в воссторге, но, может, я просто "не умею его готовить" Подмигивание
У меня пока слишком много данных на форме - текстовые поля и таблицы, обновляемые в ПриАктивизацииСтроки().

Ещё непонятно, как параметры передавать в доп. таблицы(например склад или тип цен)? Или данные в "ПрямомЗапросе" уже должны получаться?
Вот я тоже не умею их готовить. Неплохо бы, если б профессиональный повар рассказал как. Улыбка
  

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


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

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

Вроде в теме выкладывал пример как я вижу реализацию подбора номенклатуры. Можно попробовать обратиться к leshik-у, он я думаю найдет что рассказать.

На деле в принципе подход верный, справочник - основа, далее соединения и колонки добавляются. Но соединение с виртуальной таблицей.... кхм, при большом количестве данных это конечно не серьезно. Можно попробовать временную таблицу. Есть вариант поставить соединение с вирт. таблицей где есть условие по родителю номенклатуры и при изменении родителя передавать его значение.

Или можно показать как идет инициализация и оттуда покрутим повертим Улыбка
  

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #385 - 05. Июля 2011 :: 12:57
Печать  
al_zzz писал(а) 05. Июля 2011 :: 11:58:
nvg писал(а) 05. Июля 2011 :: 11:34:
Дополнительные таблицы присоединяю методом ДобавитьСоединениеДанных(), потом ДобавитьКолонкуДанных() - добавляю нужные колонки.

По поводу скорости тоже не в воссторге, но, может, я просто "не умею его готовить" Подмигивание
У меня пока слишком много данных на форме - текстовые поля и таблицы, обновляемые в ПриАктивизацииСтроки().

Ещё непонятно, как параметры передавать в доп. таблицы(например склад или тип цен)? Или данные в "ПрямомЗапросе" уже должны получаться?
Вот я тоже не умею их готовить. Неплохо бы, если б профессиональный повар рассказал как. Улыбка



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

зы если непонятно стукни в аську
  
Наверх
wwwICQ  
IP записан
 
nvg
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 72
Местоположение: Киев
Зарегистрирован: 14. Сентября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #386 - 05. Июля 2011 :: 13:35
Печать  
vandalsvq писал(а) 05. Июля 2011 :: 12:12:
В общем я не знаю как надо постараться чтобы штатный подбор был быстрее Улыбка)), даже на DBF можно сделать чтобы было достаточно шустро.


Ну у меня ДБФ и есть. Присоединяется временная таблица с остатками. Но не уверен, что с индексы используются там.
Ну и плюс подчиненные таблицы тоже на базе ПД реализованы на форме - при активизации строки обновляются. И текстовых реквизитов на форме куча - привыкли пользователи...

Используется объект "УправлениеФормой".

Постепенно оптимизирую, но врмени много на это нету...
  
Наверх
ICQ  
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #387 - 06. Июля 2011 :: 01:25
Печать  
nvg писал(а) 05. Июля 2011 :: 13:35:
...Присоединяется временная таблица с остатками. Но не уверен, что с индексы используются там.
Ну и плюс подчиненные таблицы тоже на базе ПД реализованы на форме - при активизации строки обновляются. И текстовых реквизитов на форме куча - привыкли пользователи...

Используется объект "УправлениеФормой".

Постепенно оптимизирую, но врмени много на это нету...

А можете выложить свою форму?
  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #388 - 06. Июля 2011 :: 01:39
Печать  
vandalsvq писал(а) 05. Июля 2011 :: 12:12:
Интересное обсуждение. В общем я не знаю как надо постараться чтобы штатный подбор был быстрее Улыбка)), даже на DBF можно сделать чтобы было достаточно шустро.

Любопытно. Я думал, что ПД уступает штатному функционалу.
vandalsvq писал(а) 05. Июля 2011 :: 12:12:
Вроде в теме выкладывал пример как я вижу реализацию подбора номенклатуры.

В тестовой конфигурации бы его. Думаю, он много кому нужен.
vandalsvq писал(а) 05. Июля 2011 :: 12:12:
Есть вариант поставить соединение с вирт. таблицей где есть условие по родителю номенклатуры и при изменении родителя передавать его значение.

Или можно показать как идет инициализация и оттуда покрутим повертим Улыбка

Отбор может быть как с учетом иерархии, так и без него, то есть получение виртуальной таблицы по родителю может затянуться.
При попытке использования ПД.Справочник код у меня был такой:
Код
Выбрать все
Данные = ПоставщикДанных.Данные;
	Данные.КолонкаПиктограмм = "Наименование";
	Данные.ОтображатьИерархию = 1;

	ТекстСоединения = "left join
	|	$РегистрОстатки.ОстаткиТМЦ(,,(Номенклатура),(Количество),) as vt_rg_total
	|		on $ТекущийОбъект.ТекущийЭлемент = vt_rg_total.Номенклатура
	|";
	Данные.ДобавитьСоединениеДанных("ОстаткиПоФирме",ТекстСоединения);
	Данные.ДобавитьКолонкуДанных("КолОстаток","Остаток весь","ISNULL(vt_rg_total.КоличествоОстаток,0)","Число",19,2,1);
	Данные.НоваяКолонка("Код");
	Данные.НоваяКолонка("Наименование",,1);
	Данные.НоваяКолонка("Марка");
	Данные.НоваяКолонка("Артикул");
	Данные.НоваяКолонка("КолОстаток",1); 

Взят из тестовой конфигурации последнего релиза.
А под временной таблицей Вы имели ввиду заранее рассчитывать и хранить объединение спр.Номенклатура с необходимыми виртуальными таблицами?
Всего позиций в справочнике около 40 000.
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #389 - 06. Июля 2011 :: 04:18
Печать  
1. Интересно, а почему ПД должен уступать штатному функционалу?
2. 7.7 почти не занимаюсь, так что не уверен что в скором времени добавлю в штатную форму
3. Про временную и виртуальную...
Код
Выбрать все
Процедура ОбновитьОстатки()
ПрямойЗапрос = ПоставщикДанных.ПрямойЗапрос;
ПрямойЗапрос.ВыполнитьЗапрос("ВЫБРАТЬ Номенклатура, КоличествоОстаток ВНУТРЬ #ТаблицаОстатки ИЗ $РегистрОстатки.ОстаткиТМЦ(:КонДата, (Фирма = :ТвояФирма), (Номенклатура), (Количество), ) КАК ОстатокТМЦ");
ПрямойЗапрос.ВыполнитьЗапрос("create index idx_Номенклатура on #ТаблицаОстатки(Номенклатура)");
ВремяОстатков = ТекущееВремя();
КонецПроцедуры 


Ну и соединение данных делаешь с #ТаблицаОстатки.
А на форме пользователю показываешь время остатков на которые они были собраны. При желании пускай обновляет.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
novichek
Экс-Участник


Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #390 - 06. Июля 2011 :: 04:50
Печать  
хм, а у меня что-то в свое время не взлетел на SQL вариант когда в поставщике текст запроса с джойном со времянкой. Осталось впечатление что это одно из ограничений на текст запроса в поставщике... может и ошибаюсь.
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #391 - 06. Июля 2011 :: 05:02
Печать  
vandalsvq писал(а) 06. Июля 2011 :: 04:18:
1. Интересно, а почему ПД должен уступать штатному функционалу?
2. 7.7 почти не занимаюсь, так что не уверен что в скором времени добавлю в штатную форму
3. Про временную и виртуальную...
Код
Выбрать все
Процедура ОбновитьОстатки()
ПрямойЗапрос = ПоставщикДанных.ПрямойЗапрос;
ПрямойЗапрос.ВыполнитьЗапрос("ВЫБРАТЬ Номенклатура, КоличествоОстаток ВНУТРЬ #ТаблицаОстатки ИЗ $РегистрОстатки.ОстаткиТМЦ(:КонДата, (Фирма = :ТвояФирма), (Номенклатура), (Количество), ) КАК ОстатокТМЦ");
ПрямойЗапрос.ВыполнитьЗапрос("create index idx_Номенклатура on #ТаблицаОстатки(Номенклатура)");
ВремяОстатков = ТекущееВремя();
КонецПроцедуры 


Ну и соединение данных делаешь с #ТаблицаОстатки.
А на форме пользователю показываешь время остатков на которые они были собраны. При желании пускай обновляет.

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

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #392 - 06. Июля 2011 :: 07:11
Печать  
al_zzz писал(а) 06. Июля 2011 :: 05:02:
Но тогда остатки не будут актуальными. Верно? А пользователи должны работать с актуальными данными.


если так судить то в стандартном подборе вообще не может быть актуальных данных.
  
Наверх
wwwICQ  
IP записан
 
mvgfirst
Full Member
***
Отсутствует


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

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

При открытии формы выдает сообщение:
Цитата:
ПоставщикДанных.КоманднаяПанель::УстановитьНаборПиктограмм(Картинка Пиктограммы=, Число Ширина=16, Число Высота=16, Число Количество=26) : Неудачная попытка создания объекта
КартинкиПанелиУправления = СоздатьОбъект("MSComctlLib.ImageListCtrl");
анель.ert(350) }


Причем делаю все это так же как делал прошлый раз, на том же компьюетере. Причем делал 3 месяца назад все работало, нарадоваться не мог. Сейчас делаю вообще элементарное:

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

	Данные = ПоставщикДанных.Данные;

	Данные.НоваяКолонка("Статья");
	Данные.НоваяКолонка("Значение");


КонецПроцедуры // ПослеСозданияФормы
 


И Главное ОФИС стоит!!! 2010
И обидно что они такой же и раньше стоял.

Единственно что сделал с того момента (единственное в том смысле что на него можно грешить)....
Это установил SQLEXRESS2005 и консоль управления к нему.

Всякие там regsvr32 - запускал... не помогает. Улыбка

В чем может быть причина?!

Может ли этому делу воспрепятствовать TuneUp Utilites (возможно где-то подчистился реестр?)


КОроче говоря - ОЧЕНЬ СРОЧНО НУЖНА ПОМОЩЬ!!!
  
Наверх
ICQ  
IP записан
 
mvgfirst
Full Member
***
Отсутствует


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

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

Перерыл всю (рыл через ПОИСК поэтому возможно что-то и упустил) тему на предмет лечения сего глюка. Пробовал ставить апдейты, регистрировал компоненты. Не помогло ничего.

Помогло - переустановить Офис. Вернее даже не переустановить - а запустить инсталляху и сказать "Восстановить",
После восстановления и перезагрузки все заработало.

Одно только - как быть у клиента, на каждую машину заново офис ставить (тьфу-тьфу-тьфу) если вдруг не взлетит на них ПоставщикДанных?

  
Наверх
ICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #395 - 11. Июля 2011 :: 18:49
Печать  
скорей всего слетела регистрация библиотек
comctl32.ocx
MSCOMCTL.OCX

и cmd от имени админа запусти  Подмигивание

regsvr32 comctl32.ocx
regsvr32 MSCOMCTL.OCX

и незабудим

ps после этого взлетело на без офиса на Linux
  
Наверх
wwwICQ  
IP записан
 
mvgfirst
Full Member
***
Отсутствует


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

Сообщений: 152
Местоположение: Украина г. Кривой Рог
Зарегистрирован: 17. Августа 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #396 - 11. Июля 2011 :: 21:40
Печать  
Создал ПоставщикДанных на основе Индексированной таблицы.
Указал в составе таблицы две нетипизированных колонки.

Теперь мне надо что бы при редактировании строки, при нажатии на кнопку выбора значений (или F4) выводился список. Делаю это отлавливая событием "ПриНачалеИзмененияЗначения", и вывожу список любым удобным мне способом.

Но не могу записать значение в Индексированную таблицу так что бы его было видно в Поставщике данных. Хотя отладчиком вижу что значение занесено - но оно не отображается ни в режиме редактирования строки ни после.

ПоставщикДанных.ОБновить() - делал

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


Плюнул уже думаю - сделаю колонки типизированными - но как только присвоил колонке тип "Строка" - исчезла кнопка выбора значения по которой я открываю список.

Короче - мне надо сделать что бы в одной колонке табличного поля пользователь мог выбрать из списка строковое название поля, а в другой колонке указать его значение (причем значение может быть любым типом ... хоть даже Агрегатным объектом)
Подскажите как сделать...

Или скажите что я делаю не так.
  
Наверх
ICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #397 - 12. Июля 2011 :: 05:13
Печать  
рабочий кусок кода заполнение ИТЗ из списка

Код
Выбрать все
Процедура ТПДокументыПередНачаломИзменения(ТП,ФСО)
	Если ПоставщикДок.Данные.ТекущаяКолонка.Имя = "Документ" Тогда
		ФСО = 0;
		ОткрытьФорму(ПоставщикДок.Данные.ТекущиеДанные.Документ,,);
	ИначеЕсли ПоставщикДок.Данные.ТекущаяКолонка.Имя = "ПечатнаяФорма" Тогда
		ФСО = 0;
		//Создаем список форм
		СписокФорм = СоздатьОбъект("СписокЗначений");
		Ключ = ПоставщикДок.Данные.ТекущиеДанные.Документ.Вид();
		ТаблицаФорм.УстановитьФильтр(Ключ, Ключ, "ФильтрСписка", , );
		ТаблицаФорм.Выгрузить(СписокФорм,"ФильтрСписка", "Название", );
		ТаблицаФорм.ВыключитьФильтр("ФильтрСписка");

		ЗН = ПоставщикДок.Данные.ТекущиеДанные.ПечатнаяФормаНомер;

		Если СписокФорм.ВыбратьЗначение(ЗН,,,,2) = 1 Тогда
			ИТ = ПоставщикДок.Данные.ИндексированнаяТаблица;
			ИТ.ПечатнаяФормаНомер = СписокФорм.НайтиЗначение(ЗН);
			ИТ.ПечатнаяФорма = ЗН;
			ПоставщикДок.ТабличноеПоле.ОбновитьСтроки();
		КонецЕсли;
	КонецЕсли;

КонецПроцедуры // ТПДокументыПередНачаломИзменения 

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


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

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

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


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

Сообщений: 152
Местоположение: Украина г. Кривой Рог
Зарегистрирован: 17. Августа 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #399 - 12. Июля 2011 :: 09:45
Печать  
Доку я посмотрел.
С помощью доки разобрался как можно красиво сделать редактирование колонки в которой может хранится несколько разнотиповых данных.

Я даже смог засунуть в ячейку список значений и отредактировать его используя атрибут "ИспользоватьСписок".
Но то что мне нужно - я не понял как сделать.

Еще раз повторю мне необходимо что бы в колонке хранилось значение, выбрать которое пользователь может из списка выбора (например который выпадает как раскрывающийся список при нажатии на кнопку выбора").
Т.е. например СписокЗначений содержит список городов - то при редактировании колонки должна появится кнопка, нажав на которую откроется выпадающий список с городами, выбрав из которого пользователь переходит к редактированию следующей колонки, а в ячейке сохраняется строковое значение города.

Как это сделать с помощью ПоставщикДанных.ОписаниеТипов - я не понял.

Остается попробовать способ предложенный Anatol
  
Наверх
ICQ  
IP записан
 
mvgfirst
Full Member
***
Отсутствует


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

Сообщений: 152
Местоположение: Украина г. Кривой Рог
Зарегистрирован: 17. Августа 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #400 - 12. Июля 2011 :: 09:54
Печать  
Метод предложенный Anatol работае пока лучше чем все мной испробованные ранее.
Но. Не так как хотелось бы.
Хотелось бы что бы по двойному щелчку мыши (или по Enter) табполе переходило в режим редактирования и в нужной мне колонке высвечивался бы элемент редактирования с кнопкой выбора. Нажав на которую выпадал бы список значений, по завершению выбора значение записывалось бы в строку ТП.

Сейчас же по даблклику или энтеру - происходит выпадение списка - да еще и без видимого перехода в режим редактирования.

За неимением лучшего сойдет и такой - но как-то непонятно неужели никто ранее не желал подобного?
  
Наверх
ICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #401 - 12. Июля 2011 :: 11:49
Печать  
аля восьмерка?  Смех
вообше работа со списками стандартна в 1с.
возможно, но не было необходимости
« Последняя редакция: 12. Июля 2011 :: 13:28 - Anatol »  
Наверх
wwwICQ  
IP записан
 
ParaWiz_
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Местоположение: Томск
Зарегистрирован: 19. Июля 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #402 - 19. Июля 2011 :: 04:13
Печать  
Перелопатил весь форум, так и не нашел примера использования класса ПоставщикДанных.ТабличнаяЧасть
Задача - работа с МнЧ документа, пока застрял на глупом - не могу установить параметры колонки, помогите примером если нетрудно
  
Наверх
ICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Зарегистрирован: 30. Марта 2010
Пол: Женский
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #403 - 24. Июля 2011 :: 10:06
Печать  
День добрый!
Не получается решить проблему вылета при установки системной картинки в Поставщик.ИндексированнаяТаблица.
Картинка отображается, но при щелчке по ней 1С вылетает в дебаг.

Делаю так: в ИТЗ добавляю колонку Пиктограмма с индексом картинки.

Код
Выбрать все
омДанныеПерерасч.НоваяКолонка("Пиктограмма","Число",1,0,"Пиктограмма",,,0); 



Зачитываю индекс в нее в запросе.

Потом ПриВыводеСтроки пишу:
Код
Выбрать все
Процедура кнПерерасчетыПриВыводеСтроки(тп, ОформлениеСтроки, ДанныеСтроки, ТипРегиона)
	Если ТипРегиона = 3 Тогда
		ОформлениеЯчейки = ОформлениеСтроки.Ячейки.Получить("Пиктограмма");
		ОформлениеЯчейки.ИндексСистемнойКартинки = СокрЛП(ДанныеСтроки.Пиктограмма);
		ОформлениеЯчейки.ОтображатьСистемнуюКартинку = 1;
	КонецЕсли;
КонецПроцедуры  



Картинка корректная выводится, но стоит по ней щелкнуть, вылет

Код
Выбрать все
'1cv7s.exe': Loaded 'C:\WINDOWS\system32\MSCOMCTL.OCX', Cannot find or open a required DBG file.
'1cv7s.exe': Loaded 'C:\WINDOWS\system32\vbscript.dll', No symbols loaded.
Unhandled exception at 0x7c938235 in 1cv7s.exe: 0xC00000FD: Stack overflow.
 


Печаль(((
Может быть подскажет кто, что за ерунда?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #404 - 24. Июля 2011 :: 19:00
Печать  
может

Код
Выбрать все
ОформлениеЯчейки.ИндексСистемнойКартинки = Число(СокрЛП(ДанныеСтроки.Пиктограмма)); 

  
Наверх
wwwICQ  
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

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

Кстати, насчет некритичного функционала. Тут заказчики пожаловались на то, что 1С 7.7 по сравнению с новыми их программами слишком серая, и я, по их просьбе, изменила ЦветФона ряда форм. Но тут всплыла проблема: в поставщике данных фон командной панели не меняется, остается серым. Вы не в курсе, можно ли как-то задать фон командной панели, или сделать ее прозрачной? Эстеты-заказчики возмущаются Улыбка))
  
Наверх
 
IP записан
 
serpentariy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 35
Зарегистрирован: 19. Ноября 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #406 - 11. Августа 2011 :: 11:48
Печать  
Здравствуйте. Подскажите пожалуйста как в ПоставщикДанных "Журнал" вывести Колонку с суммами документов

в Журнале присутствуют несколько видов документов у одних документов реквизит "Сумма" у других "СуммаУпр". в одном документе это реквизит шапки документа а в другом это реквизит ТЧ(+ИтогПоКолонке=1).
В тестовом примере видел
Код
Выбрать все
Данные.ДобавитьКолонкуДанных("НачалоГода","Начало года","НачалоПериода($ТекущийОбъект.ДатаДокумента,ГОД)","Дата",,,1); 


а вот как теперь мне реализовать свое....
Аналог стандартно процедуры в журналах
Код
Выбрать все
глСуммаДокументаВЖурнале(ТекущийДокумент) 


Натолкните плиз

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


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #407 - 13. Августа 2011 :: 10:01
Печать  
serpentariy писал(а) 11. Августа 2011 :: 11:48:
...Натолкните плиз



Сначала написать запрос. Потом присоеденить его и выводить.
Что-то типа такого:
Код
Выбрать все
Данные = ПоставщикДанных.Данные;
ТекстСоединения = "
	|left join	Документ.Заказ as Заказы on $ДокВыпускПродукции.Заказ = Заказы.IDDOC";
Данные.ДобавитьСоединениеДанных("Заказы",ТекстСоединения);

Данные.ДобавитьКолонкуДанных("Контрагент","Контрагент","$Заказы.Контрагент",
			  "Справочник.Контрагенты",,,1);
Данные.НоваяКолонка("Контрагент");
 



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


1C++ rocks!

Сообщений: 35
Зарегистрирован: 19. Ноября 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #408 - 15. Августа 2011 :: 11:37
Печать  
zk96 писал(а) 13. Августа 2011 :: 10:01:
serpentariy писал(а) 11. Августа 2011 :: 11:48:
...Натолкните плиз



Сначала написать запрос. Потом присоеденить его и выводить.
Что-то типа такого:
Код
Выбрать все
Данные = ПоставщикДанных.Данные;
ТекстСоединения = "
	|left join	Документ.Заказ as Заказы on $ДокВыпускПродукции.Заказ = Заказы.IDDOC";
Данные.ДобавитьСоединениеДанных("Заказы",ТекстСоединения);

Данные.ДобавитьКолонкуДанных("Контрагент","Контрагент","$Заказы.Контрагент",
			  "Справочник.Контрагенты",,,1);
Данные.НоваяКолонка("Контрагент");
 





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

вирт().ПриБыстромПоиске(ТипПоиска,Данные,ФСО);
{\Classes\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(454) } 


Что не так и как ее побороть??

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


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #409 - 15. Августа 2011 :: 11:57
Печать  
serpentariy писал(а) 15. Августа 2011 :: 11:37:
...Что не так и как ее побороть??

Выложи тест.
  
Наверх
 
IP записан
 
serpentariy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 35
Зарегистрирован: 19. Ноября 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #410 - 15. Августа 2011 :: 12:12
Печать  
zk96 писал(а) 15. Августа 2011 :: 11:57:
serpentariy писал(а) 15. Августа 2011 :: 11:37:
...Что не так и как ее побороть??

Выложи тест.


http://ifolder.ru/25200240 ПРИМЕР журнала
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #411 - 15. Августа 2011 :: 12:37
Печать  
Скорей всего в

Код
Выбрать все
	Если ТипРегиона <> 3 Тогда
		Возврат;
	КонецЕсли;
 




и зачем такие выражения?
Код
Выбрать все
глСуммаДокументаВЖурнале(ДанныеСтроки.ТекущийДокумент); 

  
Наверх
wwwICQ  
IP записан
 
serpentariy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 35
Зарегистрирован: 19. Ноября 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #412 - 15. Августа 2011 :: 13:00
Печать  
[quote author=Anatol link=1285520767/405#411

и зачем такие выражения?
Код
Выбрать все
глСуммаДокументаВЖурнале(ДанныеСтроки.ТекущийДокумент); 


[/quote]

мне надо получить сумму документа, у одного документа это реквизит сумма у другого СуммаПР(например)
  
Наверх
 
IP записан
 
serpentariy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 35
Зарегистрирован: 19. Ноября 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #413 - 15. Августа 2011 :: 13:05
Печать  
Код
Выбрать все
Если ТипРегиона <> 3 Тогда
		Возврат;
	КонецЕсли; 



убрал, ошибка та-же Печаль
  
Наверх
 
IP записан
 
DmSk
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Барнаул
Зарегистрирован: 28. Марта 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #414 - 30. Августа 2011 :: 09:13
Печать  
Использую ПоставщикДанных.Журнал
на форме журнала хочу снизу вывести комментарий, и вынести туда поле <примечание>.
Кинул на форму ТЕкстовое поле, привязал функцию ВозвратКоммент():

Функция ВозвратКоммент()    
     Попытка
           Стр = ТабличноеПоле.ТекущиеДанные.Примечание;
     Исключение
     КонецПопытки;      

     Возврат Стр;
КонецФункции

В результате когда перемещаю выделение с одного дока на другой, то информация в комменте не обновляется(остается предыдущая). Я так думаю это происходит изза того что не просходит обновление формы, при пролистывании строк ТП.
Что посоветуете ? повешать "Форма.Обновить()" на действия в ТП ?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #415 - 30. Августа 2011 :: 09:41
Печать  
Сделай в событии ПриАктивизацииСтроки()

Форма.ИмяТекстовогоРеквизита.Заголовок()
  
Наверх
wwwICQ  
IP записан
 
DmSk
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Барнаул
Зарегистрирован: 28. Марта 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #416 - 31. Августа 2011 :: 03:09
Печать  
Спасибо
  
Наверх
 
IP записан
 
DmSk
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Барнаул
Зарегистрирован: 28. Марта 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #417 - 31. Августа 2011 :: 12:43
Печать  
Проблема, когда из журнала документ создается копированием(правой кнопкой - скопировать), то флаг, что это копия не передаётся.
//***************************************************
Процедура ВводНового(ФлКопия) 
     Сообщить(ФлКопия);
КонецПроцедуры

всегда выводится 0
  
Наверх
 
IP записан
 
serpentariy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 35
Зарегистрирован: 19. Ноября 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #418 - 31. Августа 2011 :: 12:56
Печать  
Подскажите как реализовать отображение выбранного периода в заголовке формы(как в стандартном журнале)

т.е. при нажатии кнопки "Выбор периода" на КонтейнерКоманднойПанели как отловить это нажатие????
  
Наверх
 
IP записан
 
DmSk
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Барнаул
Зарегистрирован: 28. Марта 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #419 - 01. Сентября 2011 :: 07:19
Печать  
собственно говоря всё, что устанавливается в процедуре ВводНового() игнорируется при копировании документа в ТП журнала
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #420 - 01. Сентября 2011 :: 07:57
Печать  
serpentariy писал(а) 31. Августа 2011 :: 12:56:
Подскажите как реализовать отображение выбранного периода в заголовке формы(как в стандартном журнале)

т.е. при нажатии кнопки "Выбор периода" на КонтейнерКоманднойПанели как отловить это нажатие????


смотри в сторону ПриИзменииОтбора
  
Наверх
wwwICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #421 - 01. Сентября 2011 :: 08:00
Печать  
DmSk писал(а) 31. Августа 2011 :: 12:43:
Проблема, когда из журнала документ создается копированием(правой кнопкой - скопировать), то флаг, что это копия не передаётся.
//***************************************************
Процедура ВводНового(ФлКопия)  
     Сообщить(ФлКопия);
КонецПроцедуры

всегда выводится 0



это имхо системный флаг и его врятли передашь...
если хочешь заполнить осбым образом новый документ, то придется из журнала в ПередНачаломДобавления
  
Наверх
wwwICQ  
IP записан
 
serpentariy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 35
Зарегистрирован: 19. Ноября 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #422 - 01. Сентября 2011 :: 08:14
Печать  
Anatol писал(а) 01. Сентября 2011 :: 07:57:
serpentariy писал(а) 31. Августа 2011 :: 12:56:
Подскажите как реализовать отображение выбранного периода в заголовке формы(как в стандартном журнале)

т.е. при нажатии кнопки "Выбор периода" на КонтейнерКоманднойПанели как отловить это нажатие????


смотри в сторону ПриИзменииОтбора

в ТУ сторону уже смотрел
данное событие не отрабатывает при нажатии на кнопку "Установить интервал дат..."
  
Наверх
 
IP записан
 
DmSk
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Барнаул
Зарегистрирован: 28. Марта 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #423 - 01. Сентября 2011 :: 09:15
Печать  
Anatol писал(а) 01. Сентября 2011 :: 08:00:
DmSk писал(а) 31. Августа 2011 :: 12:43:
Проблема, когда из журнала документ создается копированием(правой кнопкой - скопировать), то флаг, что это копия не передаётся.
//***************************************************
Процедура ВводНового(ФлКопия)  
     Сообщить(ФлКопия);
КонецПроцедуры

всегда выводится 0



это имхо системный флаг и его врятли передашь...
если хочешь заполнить осбым образом новый документ, то придется из журнала в ПередНачаломДобавления


сделал. непривычно все таки, всё что раньше писалось в форме дока, теперь придется переписывать в форму журнала ТП(так как по сути копирование дока программное).
Но все равно полезности перевешивают "трудности".
Спасибо
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #424 - 01. Сентября 2011 :: 10:19
Печать  
serpentariy писал(а) 01. Сентября 2011 :: 08:14:
Anatol писал(а) 01. Сентября 2011 :: 07:57:
serpentariy писал(а) 31. Августа 2011 :: 12:56:
Подскажите как реализовать отображение выбранного периода в заголовке формы(как в стандартном журнале)

т.е. при нажатии кнопки "Выбор периода" на КонтейнерКоманднойПанели как отловить это нажатие????


смотри в сторону ПриИзменииОтбора

в ТУ сторону уже смотрел
данное событие не отрабатывает при нажатии на кнопку "Установить интервал дат..."


значит переназначить действие для кнопки
  
Наверх
wwwICQ  
IP записан
 
DmSk
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Барнаул
Зарегистрирован: 28. Марта 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #425 - 05. Сентября 2011 :: 08:28
Печать  
DmSk писал(а) 01. Сентября 2011 :: 09:15:
Anatol писал(а) 01. Сентября 2011 :: 08:00:
DmSk писал(а) 31. Августа 2011 :: 12:43:
Проблема, когда из журнала документ создается копированием(правой кнопкой - скопировать), то флаг, что это копия не передаётся.
//***************************************************
Процедура ВводНового(ФлКопия)  
     Сообщить(ФлКопия);
КонецПроцедуры

всегда выводится 0



это имхо системный флаг и его врятли передашь...
если хочешь заполнить осбым образом новый документ, то придется из журнала в ПередНачаломДобавления


сделал. непривычно все таки, всё что раньше писалось в форме дока, теперь придется переписывать в форму журнала ТП(так как по сути копирование дока программное).
Но все равно полезности перевешивают "трудности".
Спасибо

вот в общем немного всё переделал, поскольку в сложных документах в "при открытии" заполняются несколько табличных частей, а при копировании в ТП, все реквизиты копируются после выполнения процедуры "при открытии", придумал так
в форме журнала ТП код:

//************************************************
Процедура ТППередНачаломДобавления(Табл,Копирование, ФСО)   

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

//таким образом в новый документ в виде контекста посылаем копируемый документ
в форме документа немного дописываем процедуру "ПриОткрытии"
//***************************************************
Процедура ПриОткрытии() 
     ФП = Форма.Параметр;
     Если ПустоеЗначение(ФП) = 0 Тогда
           // фактически копирование документа производим в процедуре "ПриОткрытии"
           ТекДок = ФП;
           ВидДокумента      = ТекДок.Вид();
           МетаДокумент      = Метаданные.Документ(ВидДокумента);
                 
           ДатаДок      = ТекДок.ДатаДок;
           Для НомерРеквизита      = 1 По МетаДокумент.РеквизитШапки() Цикл
           МетаРеквизит      = МетаДокумент.РеквизитШапки(НомерРеквизита); 
           ЗначениеРеквизита = ТекДок.ПолучитьАтрибут(МетаРеквизит.Идентификатор);
                                     УстановитьАтрибут(МетаРеквизит.Идентификатор,ЗначениеРеквизита);
                 КонецЦикла;
           
                 // копирование общих реквизитов
                 Для НомерРеквизита            = 1 По Метаданные.ОбщийРеквизитДокумента() Цикл
                       МетаРеквизит            = Метаданные.ОбщийРеквизитДокумента(НомерРеквизита);
                       ЗначениеРеквизита      = ТекДок.ПолучитьАтрибут(МетаРеквизит.Идентификатор);
           УстановитьАтрибут(МетаРеквизит.Идентификатор,ЗначениеРеквизита);
                 КонецЦикла;
                 
                 МногострочнаяЧасть = СоздатьОбъект("ТаблицаЗначений");
                 ТекДок.ВыгрузитьТабличнуюЧасть(МногострочнаяЧасть);
                 ЗагрузитьТабличнуюЧасть(МногострочнаяЧасть);
  
Наверх
 
IP записан
 
ParaWiz_
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Местоположение: Томск
Зарегистрирован: 19. Июля 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #426 - 06. Сентября 2011 :: 09:33
Печать  
Итак, беру тестовую конфу из 248го поста, беру оттуда пример, ИндексированнаяТаблица выдираю его во внешнюю обработку. Затем в свою конфу (ТиС, но по сути не так важно) копирую Classes, defcls.prm все dll, подключаю в глобальном модуле приначалеработысистемы() строго в том же порядке.
Далее открываем эту внешнюю обработку в тестовой конфе - работает.
В моей конфе - не работает, см. приложение
ВК: 1С++ 3.2.3.10, Formex 2.0.5.98 (с более свежим тоже не работает и ошибки те же), поставщикданных - последний
  

_____1.txt ( 1 KB | Загрузки )
Наверх
ICQ  
IP записан
 
ParaWiz_
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Местоположение: Томск
Зарегистрирован: 19. Июля 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #427 - 06. Сентября 2011 :: 09:42
Печать  
ЗЫ: обработка (на всяк случай) в текстовом виде
  

ert.txt ( 2 KB | Загрузки )
Наверх
ICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #428 - 06. Сентября 2011 :: 09:43
Печать  
из самой конфигурации defcls еще перенеси (в обработках)
  
Наверх
wwwICQ  
IP записан
 
ParaWiz_
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Местоположение: Томск
Зарегистрирован: 19. Июля 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #429 - 06. Сентября 2011 :: 09:49
Печать  
пробовал, результат тот же, попробовал еще раз, не помогло, изменил в обработке путь, тоже не помогло
Я просто уже более двух часов парюсь перепробовал всё, иначе бы не обратился ...
  
Наверх
ICQ  
IP записан
 
serpentariy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 35
Зарегистрирован: 19. Ноября 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #430 - 06. Сентября 2011 :: 10:20
Печать  
ParaWiz_ писал(а) 06. Сентября 2011 :: 09:49:
пробовал, результат тот же, попробовал еще раз, не помогло, изменил в обработке путь, тоже не помогло
Я просто уже более двух часов парюсь перепробовал всё, иначе бы не обратился ...


Была такая же проблема... на форуме никто(почемуто) не помог
вылечил следующим образом
в классах есть обработка УправлениеФормой.Привязка.ert

в моем случае стр. №255

Код
Выбрать все
Функция Атрибут1_Max(ВложенныйВектор)
	Перем Лево, Верх, Ширина, Высота, Право; //[+] serpent, 10.08.2011
	Перем ЛевоС, ВерхС, ШиринаС, ВысотаС; 


добавил переменную "Право" и все заработало
  
Наверх
 
IP записан
 
ParaWiz_
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Местоположение: Томск
Зарегистрирован: 19. Июля 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #431 - 06. Сентября 2011 :: 10:32
Печать  
Спасибо! Улыбка Правда добавить пришлось в двух местах, но не суть важно, направление копать было верное ... может не верное, но работает Подмигивание

Ну и еще вопрос: какое расширение поставщика данных использовать чтобы получить табличное поле на основе прямого запроса со встроенным работающим отбором, как в ПоставщикДанных.Журнал например.
Конкретно применимо к мое задаче: отчет, строки документов из выборки документов. Или может кто плюнет в меня примером Подмигивание особенно интересен объект ПоставщикДанных.ПрямойЗапрос, в чем отличие от простого ПрямойЗапрос
  
Наверх
ICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #432 - 07. Сентября 2011 :: 06:20
Печать  
Баг! В расширениях Журнал и Документ не вызывается штатная ПриУдаленииДокумента() из глобальника.
  
Наверх
GTalkICQ  
IP записан
 
ParaWiz_
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Местоположение: Томск
Зарегистрирован: 19. Июля 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #433 - 07. Сентября 2011 :: 07:32
Печать  
Ну либо вопрос озвучу по-другому, может кто-нибудь подскажет как проще реализовать отбор по любой из колонок Поставщик.ИТЗ а-ля как в Поставщик.Документ или Поставщик.Справочник?
  
Наверх
ICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #434 - 07. Сентября 2011 :: 08:38
Печать  
ParaWiz_ писал(а) 07. Сентября 2011 :: 07:32:
как проще реализовать отбор по любой из колонок Поставщик.ИТЗ а-ля как в Поставщик.Документ или Поставщик.Справочник?

Сливаешь выжимки в другую ИТЗ и натравливаешь Поставщика уже на нее. Тоже давно прошу Александра реализовать отбор в этом расширении.
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #435 - 07. Сентября 2011 :: 08:59
Печать  
serpentariy писал(а) 11. Августа 2011 :: 11:48:
Здравствуйте. Подскажите пожалуйста как в ПоставщикДанных "Журнал" вывести Колонку с суммами документов

в Журнале присутствуют несколько видов документов у одних документов реквизит "Сумма" у других "СуммаУпр". в одном документе это реквизит шапки документа а в другом это реквизит ТЧ(+ИтогПоКолонке=1).
....

Код
Выбрать все
Док2.СуммаУпр)","Число",10,2);
 


Для суммы в ТЧ с итогом тоже должно работать (можно брать из шапки).
  
Наверх
GTalkICQ  
IP записан
 
ParaWiz_
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Местоположение: Томск
Зарегистрирован: 19. Июля 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #436 - 07. Сентября 2011 :: 09:24
Печать  
Да по сути, концепция уже есть но вот формочку бы стандартную отбора выдернуть, у меня вся ИТЗ формируется одним ПрямымЗапросом ... Отбор легко делался бы через передачу Параметров в запрос
  
Наверх
ICQ  
IP записан
 
ParaWiz_
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Местоположение: Томск
Зарегистрирован: 19. Июля 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #437 - 07. Сентября 2011 :: 09:25
Печать  
Во, еще глупый вопрос, возможно ли автоформирование подвала по колонкам имеющим числовой формат ?
  
Наверх
ICQ  
IP записан
 
serpentariy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 35
Зарегистрирован: 19. Ноября 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #438 - 07. Сентября 2011 :: 09:28
Печать  
Kalen писал(а) 07. Сентября 2011 :: 08:59:
serpentariy писал(а) 11. Августа 2011 :: 11:48:
Здравствуйте. Подскажите пожалуйста как в ПоставщикДанных "Журнал" вывести Колонку с суммами документов

в Журнале присутствуют несколько видов документов у одних документов реквизит "Сумма" у других "СуммаУпр". в одном документе это реквизит шапки документа а в другом это реквизит ТЧ(+ИтогПоКолонке=1).
....

Код
Выбрать все
Док2.СуммаУпр)","Число",10,2);
 


Для суммы в ТЧ с итогом тоже должно работать (можно брать из шапки).

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


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

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

У меня кроме работы ожидается пополнение семьи так что не до этого будет наверняка.
  

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


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #440 - 07. Сентября 2011 :: 09:45
Печать  
serpentariy писал(а) 01. Сентября 2011 :: 08:14:
Anatol писал(а) 01. Сентября 2011 :: 07:57:
serpentariy писал(а) 31. Августа 2011 :: 12:56:
Подскажите как реализовать отображение выбранного периода в заголовке формы(как в стандартном журнале)

т.е. при нажатии кнопки "Выбор периода" на КонтейнерКоманднойПанели как отловить это нажатие????


смотри в сторону ПриИзменииОтбора

в ТУ сторону уже смотрел
данное событие не отрабатывает при нажатии на кнопку "Установить интервал дат..."

Тогда В ПриПолученииЗапроса
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #441 - 07. Сентября 2011 :: 09:54
Печать  
vandalsvq писал(а) 07. Сентября 2011 :: 09:33:
... Существует вид данных "Отбор", таким образом создается форма (по секрету в последней версии поставщика эта форма переведена на поставщика данных "Отбор")

Давно уж руки чешутся...
оч понимаю, сам недавно проходил.  но дети когда-нибудь вырастают... Подмигивание
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #442 - 07. Сентября 2011 :: 09:55
Печать  
Исправления быстрого поиска нету еще? http://www.1cpp.ru/forum/YaBB.pl?num=1285520767/408#408
  
Наверх
GTalkICQ  
IP записан
 
serpentariy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 35
Зарегистрирован: 19. Ноября 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #443 - 07. Сентября 2011 :: 10:24
Печать  
Kalen писал(а) 07. Сентября 2011 :: 09:55:
Исправления быстрого поиска нету еще? http://www.1cpp.ru/forum/YaBB.pl?num=1285520767/408#408


Я исправил пока себе Через
Попытка
Исключение
КонецПопытки

вроде работает и позицианирует на нужной строке.
Может быстрыйПоиск должен делать чтото еще и этой "Попыткой" я что-то отключил?
  
Наверх
 
IP записан
 
Amel
Junior Member
**
Отсутствует


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #444 - 15. Сентября 2011 :: 08:47
Печать  
Коллеги!
Подскажите, как грамотно заменить стандартное контекстное меню и команды панели инструментов в ПоставщикеДанных?
  

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

Что касается панели, то просто не вызывай заполнение, а создай все необходимые кнопки самостоятельно. В документации вроде описаны все необходимые методы.
  

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


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #446 - 15. Сентября 2011 :: 09:42
Печать  
1. Меню отключается полностью установкой АвтоКонтекстноеМеню = 0.
Но присвоение реквизиту КонтекстноеМеню не меняет меню, хотя в доке сказано, что он для записи/чтения.
Далее, как я понял, выполнять свою обработку события ПриКонтекстномМеню.

И как сделать, чтобы пункты в меню, вызываемом через метод ВыбратьЗначение объекта "ПоставщикДанных.Сервис", были не помечаемые галочкой? (уже разобрался)
  

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #447 - 15. Сентября 2011 :: 12:43
Печать  
а в чем вопрос то?
  
Наверх
wwwICQ  
IP записан
 
Amel
Junior Member
**
Отсутствует


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #448 - 15. Сентября 2011 :: 13:25
Печать  
На данный момент вопроса уже нет.
Есть констатация того, что присвоение значения атрибуту КонтекстноеМеню не приводит к его изменению.
Может эта информация будет кому-то полезна.
Также, если АвтоКонтекстноеМеню установить в 0, то контекстное меню не только не формируется у объекта ПоставщикДанных, но и вообще перестает работать (видимо, потому что невозможно установить самостоятельно атрибут КонтекстноеМеню и он остается пустым без инициализации по-умолчанию).
  

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
elkpro
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 145
Зарегистрирован: 19. Мая 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #449 - 15. Сентября 2011 :: 13:56
Печать  
Начал активно использовать объект ПоставщикДанных.Журнал и наткнулся на такую неприятную ситуацию. При отмене проведения или пометке удаления не отрабатывают штатные процедуры в глобальнике ПриОтменеПроведенияДокумента и ПриУдаленииДокумента.
Я могу отследить отмену проведения через модуль документа и процедуру ПриОтменеПроведения. Есть какое-либо другое решения данного вопроса?
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #450 - 16. Сентября 2011 :: 08:59
Печать  
ПоставщикДанных.Журнал
Собственно, вопроса два.
1.  Пытаюсь добавить дополнительную колонку данных - реквизит справочника, являющегося графой журнала. Не могу написать соединение. При обращении в тексте соединения к $ТекущийОбъект.Контрагент дает ошибку "Meta name parser: неизвестное метаимя или алиас "$journ"
2. хочу посмотреть текст запроса , включаю отладку ПоставщикДанных.РежимОтладки=1;
получаю ошибку Поле агрегатного объекта не обнаружено (РежимОтладки)
что я не  так делаю?
  
Наверх
ICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #451 - 16. Сентября 2011 :: 09:54
Печать  
1. пиши просто ПоставщикДанных.Данные.НоваяКолонка("Контрагент");
2.ПоставщикДанных.Данные.РежимОтладки=1
  
Наверх
wwwICQ  
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #452 - 16. Сентября 2011 :: 10:21
Печать  
Anatol писал(а) 16. Сентября 2011 :: 09:54:
2.ПоставщикДанных.Данные.РежимОтладки=1

Спасибо, это уже нашел самостоятельно. Но все равно спасибо.
Anatol писал(а) 16. Сентября 2011 :: 09:54:
1. пиши просто ПоставщикДанных.Данные.НоваяКолонка("Контрагент");
Мне нужно отображать (и отбирать) не Контрагента, а реквизит справочника Контрагенты. ("Контрагент.Куратор", тип Справочник.Менеджеры)
В запросе колонка Контрагент собирается через coalesce(). В принципе, могу собрать и самостоятельно (для ТП так бы и сделал) - но думаю, здесь есть более правильный механизм.

  
Наверх
ICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #453 - 16. Сентября 2011 :: 11:00
Печать  
Код
Выбрать все
Данные.ДобавитьКолонкуДанных("Куратор", "Куратор", "$Контрагент.Куратор", "Справочник.Кураторы",,,1);
Данные.ДобавитьСоединениеДанных("Куратор", "left join Справочник.Контрагенты как Контрагент ПО coalesce(чего, там, или, еще , как, то) = Контрагент.id");
Данные.НоваяКолонка("Куратор");
 


  
Наверх
wwwICQ  
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #454 - 16. Сентября 2011 :: 12:03
Печать  
Anatol писал(а) 16. Сентября 2011 :: 11:00:

Так сделал. Но как-то это "неправильно"....
Других методов собрать реквизиты для джойна  - нет?
Или хотя бы получить состав реквизитов в виде текста запроса для колонки (графы)?
  
Наверх
ICQ  
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #455 - 16. Сентября 2011 :: 12:41
Печать  
А чем это неправильно?
  
Наверх
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #456 - 19. Сентября 2011 :: 02:48
Печать  
leshik писал(а) 16. Сентября 2011 :: 12:41:
А чем это неправильно?

По идее, должен быть способ получить текст запроса для колонки.
Вроде, нашел его. попробую "автоматизировать"
  
Наверх
ICQ  
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #457 - 19. Сентября 2011 :: 02:49
Печать  
Сорри за тупость, как обработать выбор строки (ПоставщикДанных.Журнал)? (при нажатии ентера/двойном клике).
  
Наверх
ICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #458 - 19. Сентября 2011 :: 05:07
Печать  
Mikeware писал(а) 19. Сентября 2011 :: 02:49:
Сорри за тупость, как обработать выбор строки (ПоставщикДанных.Журнал)? (при нажатии ентера/двойном клике).


http://www.1cpp.ru/docum/icpp/html/TableField.html#selection
+
у самого поставщика РежимВыбора
  
Наверх
wwwICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #459 - 19. Сентября 2011 :: 05:08
Печать  
Mikeware писал(а) 19. Сентября 2011 :: 02:48:
leshik писал(а) 16. Сентября 2011 :: 12:41:
А чем это неправильно?

По идее, должен быть способ получить текст запроса для колонки.
Вроде, нашел его. попробую "автоматизировать"


можно получить в ПриПолученииЗапроса и там же его поменять, но это не самый лучший вариант
  
Наверх
wwwICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #460 - 20. Сентября 2011 :: 06:55
Печать  
Маленькая поправочка в ПоставщикДанных.ВремяДокумента.ert
При измерении времени документа в начало/конец дня, ему устанавливается время первого/последнего документа +/- 1 секунда. Вместо "0:0:0" и "23:59:59". Последнее может иметь довольно неприятные последствия, если новые документы будут записываться и проводиться после перенесенного на вечер.
Кроме того, вариант 4 выбирается автоматом после ввода.
Еще хорошо бы добавить ОбновитьСтрокиТабличногоПоля() в конец ИзменитьВремяДокумента() соответствующих расширений.
  

_______________________________ert.zip ( 7 KB | Загрузки )
Наверх
GTalkICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



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

(1с++ 3.2.3.15, ПД тоже этого года)



ПоставщикДанных.Журнал::УстановитьПоставщикаДанных() : near "end": syntax error
ПоставщикДанных.УстановитьТекстЗапроса(ТекстЗапроса,"[КлючПорядка]","[ТекущийДокумент :Документ]");
6) }

ПоставщикДанных.ТабличноеПоле::Обновить() : ПоставщикДанных.Журнал::УстановитьПоставщикаДанных() : near "end": syntax error
ПоставщикДанных.УстановитьТекстЗапроса(ТекстЗапроса,"[КлючПорядка]","[ТекущийДокумент :Документ]");
6) }

вирт().Обновить();
ert(590) }

ПоставщикДанных.Журнал::УстановитьОтбор() : ПоставщикДанных.ТабличноеПоле::Обновить() : ПоставщикДанных.Журнал::УстановитьПоставщикаДанных() : near "end": syntax error
ПоставщикДанных.УстановитьТекстЗапроса(ТекстЗапроса,"[КлючПорядка]","[ТекущийДокумент :Документ]");
6) }

вирт().Обновить();
ert(590) }

ТабличноеПоле.Обновить();
4) }

Выполнить процедуру 'КоманднаяПанельПриНажатии' не удалось. Обратитесь пожалуйста к разработчикам.
ПоставщикДанных.ТабличноеПоле::КоманднаяПанельПриНажатии(Строка ИмяМетода=ПриВыбореКоманды, СписокЗначений Параметры=) : ПоставщикДанных.Журнал::УстановитьОтбор() : ПоставщикДанных.ТабличноеПоле::Обновить() : ПоставщикДанных.Журнал::УстановитьПоставщикаДанных() : near "end": syntax error
ПоставщикДанных.УстановитьТекстЗапроса(ТекстЗапроса,"[КлючПорядка]","[ТекущийДокумент :Документ]");
6) }

вирт().Обновить();
ert(590) }

ТабличноеПоле.Обновить();
4) }

ВыполняемыйМодуль.ВыполнитьПроцедуруКонтекста(вирт(),ИмяМетода,Параметры);
ert(714) }
« Последняя редакция: 27. Сентября 2011 :: 13:14 - ildary »  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #462 - 27. Сентября 2011 :: 12:59
Печать  
ildary писал(а) 27. Сентября 2011 :: 06:04:
Скажите пожалуйста, что может быть причиной того, что в ТП на основе документа прекрасно работает отбор по комментарию, а в ТП на основе журнала выдает ошибку

Текст отладки дай чтоли. Да в текстовик прилепи, а не заваливай пост.
  
Наверх
GTalkICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



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

upd. второй файл, первый в дос кодировке получился.
  

222.txt ( 9 KB | Загрузки )
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #464 - 30. Сентября 2011 :: 07:36
Печать  
Делаю обработку редактирования скидок по контрагентам.
На форме два табличных поля отражающие- справочник контрагенты и второе- справочник Скидки
Все почти получается, но немогу разрешить два вопроса.

1. В справочнике Скидки есть реквизит Номенклатура (тип справочник.Номенклатура), при выборе значения разрешает выбор только элемента.  Для выбора используется основная форма списка (где выбор групп запрещен).
Как в при выборе назначить другую форму списка или передать контекст в открываемую форму списка (что бы можно было по условию разрешить выбор групп) ?

2. При попытке ввода нового элемента справочника Скидки ругается на неуникальность еового кода, предлагает его изменить , после изменения строка списка так и не добавляется .

Использую версию Поставщика данных 1Cv7_ext_TF_004
1С++ 3.2.3.16
файл обработки http://ifolder.ru/26063880
Подскажите как решить проблему
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #465 - 30. Сентября 2011 :: 07:38
Печать  
dimm73 писал(а) 30. Сентября 2011 :: 07:36:
Делаю обработку редактирования скидок по контрагентам.
На форме два табличных поля отражающие- справочник контрагенты и второе- справочник Скидки
Все почти получается, но немогу разрешить два вопроса.

1. В справочнике Скидки есть реквизит Номенклатура (тип справочник.Номенклатура), при выборе значения разрешает выбор только элемента.  Для выбора используется основная форма списка (где выбор групп запрещен).
Как в при выборе назначить другую форму списка или передать контекст в открываемую форму списка (что бы можно было по условию разрешить выбор групп) ?

2. При попытке ввода нового элемента справочника Скидки ругается на неуникальность нового кода, предлагает его изменить , после изменения строка списка так и не добавляется .

Использую версию Поставщика данных 1Cv7_ext_TF_004
1С++ 3.2.3.16
файл обработки http://ifolder.ru/26063880
Подскажите как решить проблему

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #466 - 30. Сентября 2011 :: 09:51
Печать  
Вопрос 1 - снят

кому интересно
Данные.Реквизиты.Номенклатура.ВыборГруппы = 1;

а вот второй вопрос еще актуален

после установки более новой версии поставщика данных при запуске обработки вываливается не мало ошибок.
пока остался на 4м релизе
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

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

  
Наверх
wwwICQ  
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #468 - 30. Сентября 2011 :: 12:12
Печать  
Спасибо
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #469 - 30. Сентября 2011 :: 12:34
Печать  
там проблема в том, что справочник контрагенты не является владельцем справочника скидки, это просто реквизит по которому происходит отбор.

Сейчас передо мной проблема - как передать в обработку Поставщик данных.Справочник в процедуру ДобавитьСтроку, ссылку на контрагента . что бы вновь созданный элемент спр. скидки попал в отбор табличного поля
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #470 - 30. Сентября 2011 :: 12:48
Печать  
хотя значение текущего контрагента можно вытащить через контекст формы.
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #471 - 11. Октября 2011 :: 08:11
Печать  
Столкнулся со следующей проблемой:
Решил повесить вкусняшку - чтоб в отборе по виду документа в общем журнале выводился поставщик с видами документа. Но при закрытии формы в обработке ПриВыбореЗначения падает 1с-ка. В чем может быть причина?
  

________________006.ert ( 49 KB | Загрузки )

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #472 - 12. Октября 2011 :: 05:13
Печать  
КТ и Значение убери из переменных

>>ПД = "";
Поставщика уничтожать не нужно...


);

у тебя в таблице поставщики живут? или как это понять?
  
Наверх
wwwICQ  
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #473 - 12. Октября 2011 :: 09:28
Печать  
Anatol писал(а) 12. Октября 2011 :: 05:13:
КТ и Значение убери из переменных

>>ПД = "";
Поставщика уничтожать не нужно...


);

у тебя в таблице поставщики живут? или как это понять?

У меня в таблице живут две колонки - в одной из них("Вид") хранится представление вида документа, а в другой ("Вид_Документа") - сам вид. Убрал Переменную и всё получилось. Спасибо!
Подскажите ещё, как спозицианироваться в ПоставщикеДанных.ИндексированнаяТаблица на нужной строке?
  

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #474 - 12. Октября 2011 :: 09:45
Печать  
ТП.ТекущаяСтрока = Данные.ИндексированнаяТаблица.НомерСтроки ?
  
Наверх
wwwICQ  
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #475 - 12. Октября 2011 :: 10:25
Печать  
Anatol писал(а) 12. Октября 2011 :: 09:45:
ТП.ТекущаяСтрока = Данные.ИндексированнаяТаблица.НомерСтроки ?

Точно! Спасибо!
  

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


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #476 - 12. Октября 2011 :: 10:45
Печать  
Код
Выбрать все
Перем пд;
Процедура Сформировать()

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

	Данные.Отображение	= 1;
	Ноль=0;
	Сообщить("Данные.Отображение="+Данные.Отображение+" Ноль=0; Ноль+1="+(Ноль+1));

	Данные.Отображение	= 0;
	Ноль=0;
	Сообщить("Данные.Отображение="+Данные.Отображение+" Ноль=0; Ноль+1="+(Ноль+1));
КонецПроцедуры
 



Данные.Отображение=1 Ноль=0; Ноль+1=1
Данные.Отображение=1 Ноль=0; Ноль+1=2

Нет, я понимаю что Отображение должно быть равно 1 или 2, 0 я поставил случайно, но как то все равно странновато  Ужас
  
Наверх
www  
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #477 - 14. Октября 2011 :: 10:51
Печать  
Извините за такой ламерский вопрос, но как использовать поставщик данных для произвольного запроса?
Дело в том, что хочу подключить поставщик данных для просмотра таблицы (или представления) SQL. Это возможно сделать?
  
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #478 - 14. Октября 2011 :: 11:58
Печать  
Возможно - надо использовать событие ПриПолученииЗапроса
  
Наверх
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #479 - 14. Октября 2011 :: 12:51
Печать  
pvase писал(а) 14. Октября 2011 :: 10:51:
Извините за такой ламерский вопрос, но как использовать поставщик данных для произвольного запроса?
Дело в том, что хочу подключить поставщик данных для просмотра таблицы (или представления) SQL. Это возможно сделать?


В этом случаи делать класс наследник от ПоставщикаТП или индексированная таблица
  
Наверх
wwwICQ  
IP записан
 
ssv02
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 19
Зарегистрирован: 16. Апреля 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #480 - 20. Октября 2011 :: 11:02
Печать  
Попытался реализовать форму списка справочника. Возникла проблема. Длина кода справочника 6 символов. В табличном поле элементы с кодом >=100000 отражаются с кодом "99 999". Подскажите куда копать.


Нашел!!!!!!!!!!!!!!!!!!!
Проблема в типизации колонок при описании справочника.

http://www.1cpp.ru/forum/YaBB.pl?num=1285520767/75#75
http://www.1cpp.ru/forum/YaBB.pl?num=1290007522
« Последняя редакция: 20. Октября 2011 :: 13:37 - ssv02 »  
Наверх
 
IP записан
 
ssv02
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 19
Зарегистрирован: 16. Апреля 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #481 - 20. Октября 2011 :: 13:32
Печать  
Можно ли где-то посмотреть пример формы списка справочника с реализацией дерева групп + многострочная часть справочника
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #482 - 28. Октября 2011 :: 06:46
Печать  
Делаю форму подбора из справочника.Номенклатура

Нужно в одной из колонок показать текущий остаток товара по определенному списку складов
как передать в запрос список значений для фильтра ?

Пробовал так:

     Данные.УложитьСписокЗначений(глСписокСкладов, "#ГруппаН", "Склады");




Код
Выбрать все
	ТекстСоединения = "left join
	|	$РегистрОстатки.ОстаткиТМЦ(,Склад IN (SELECT Val FROM #ГруппаН),(Номенклатура),(Количество),) as vt
	|		on $ТекущийОбъект.ТекущийЭлемент = vt.Номенклатура
	|";
	Данные.ДобавитьСоединениеДанных("ОстаткиПоТовару",ТекстСоединения);

	Данные.УложитьСписокЗначений(глСписокСкладов, "#ГруппаН", "Склады");
	Данные.ДобавитьКолонкуДанных("КолОстаток","ТМЦ остаток","ISNULL(vt.КоличествоОстаток,0)","Число",19,2,1);

	Колонки = ТабличноеПоле.Колонки;
	Данные.НоваяКолонка("Код");
	Данные.НоваяКолонка("Наименование");
	Данные.НоваяКолонка("КолОстаток");

 




выдает ошибку, подскажите как правильно
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #483 - 28. Октября 2011 :: 09:40
Печать  
оказывается нужно было так:

Код
Выбрать все
	ТекстСоединения = "left join
	|	$РегистрОстатки.ОстаткиТМЦ(,Склад IN (SELECT Val FROM #ГруппаН),(Номенклатура),(Количество),) as vt
	|		on $ТекущийОбъект.ТекущийЭлемент = vt.Номенклатура
	|";
	Данные.ДобавитьСоединениеДанных("ОстаткиПоТовару",ТекстСоединения);
	Запрос=Данные.ПрямойЗапрос;
	Запрос.УложитьСписокОбъектов(глСписокСкладов, "#ГруппаН", "Склады");
	Данные.ДобавитьКолонкуДанных("КолОстаток","ТМЦ остаток","ISNULL(vt.КоличествоОстаток,0)","Число",14,2,1);
 

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #484 - 28. Октября 2011 :: 11:24
Печать  
Задача усложняется, необходимо полученный остаток пересчитать из базовых единиц в основные

пробую так:

Код
Выбрать все
ТекстСоединения = "left join
	|	$РегистрОстатки.ОстаткиТМЦ(,Склад IN (SELECT Val FROM #ГруппаН1),(Номенклатура),(Количество),) as vt
	|		on $ТекущийОбъект.ТекущийЭлемент = vt.Номенклатура
	|left join $Справочник.Единицы СпрЕ(nolock) on СпрЕ.[id] = $ТекущийОбъект.ОсновнаяЕдиница
	Данные.ДобавитьСоединениеДанных("ОстаткиПоТовару",ТекстСоединения);
	Запрос=Данные.ПрямойЗапрос;
	Запрос.УложитьСписокОбъектов(глСписокСкладов, "#ГруппаН1", "Склады");
Данные.ДобавитьКолонкуДанных("КолОстаток","ТМЦ остаток","((CASE WHEN ( $ТекущийОбъект.ОсновнаяЕдиница <>  $ТекущийОбъект.БазоваяЕдиница) THEN (ISNULL(vt.КоличествоОстаток,0) / $СпрЕ.Коэффициент) ELSE ISNULL(vt.КоличествоОстаток,0) END))","Число",14,2,1);
 



вываливается ошибка

ПоставщикДанных.Справочник::УстановитьПоставщикаДанных() : Meta name parser: неизвестное метаимя или алиас "$Спр1"
ПоставщикДанных.УстТекстЗапроса(ТекстЗапроса);
авщикДанных.Справочник.ert(1049) }
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #485 - 28. Октября 2011 :: 12:17
Печать  
сделал подругому, сначала подсоединяю таблицу единиц
Код
Выбрать все
	ТекстСоединения = "
  |left join $Справочник.Единицы СпрЕ(nolock) on СпрЕ.[id] = $ТекущийОбъект.ОсновнаяЕдиница
	|";
	Данные.ДобавитьСоединениеДанных("КоеэфЕИ",ТекстСоединения);

 



потом

Код
Выбрать все
	ТекстСоединения = "left join
	|	$РегистрОстатки.ОстаткиТМЦ(,Склад IN (SELECT Val FROM #ГруппаН1),(Номенклатура),(Количество),) as vt
	|		on $ТекущийОбъект.ТекущийЭлемент = vt.Номенклатура
//	|left join $Справочник.Единицы СпрЕ(nolock) on СпрЕ.[id] = $ТекущийОбъект.ОсновнаяЕдиница
	|";
	Данные.ДобавитьСоединениеДанных("ОстаткиПоТовару",ТекстСоединения);
	Запрос=Данные.ПрямойЗапрос;
	Запрос.УложитьСписокОбъектов(глСписокСкладов, "#ГруппаН1", "Склады");

	Данные.ДобавитьКолонкуДанных("КолОстаток","ТМЦ остаток","((CASE WHEN ( $ТекущийОбъект.ОсновнаяЕдиница <>  $ТекущийОбъект.БазоваяЕдиница) THEN (ISNULL(vt.КоличествоОстаток,0) / $СпрЕ.Коэффициент) ELSE ISNULL(vt.КоличествоОстаток,0) END))","Число",14,2,1);
 




но все равно пишет туже ошибку

неизвестное метаимя или алиас "$СпрЕ"
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #486 - 29. Октября 2011 :: 03:31
Печать  
не понимаю, упростил схему до простого и все равно ошибки
раньше (на прежних проектах) я делал так и все работало (правда это была 4-я версия ПоставщикаДанных)
Код
Выбрать все
 	Данные.ДобавитьСоединениеДанных("ОснЕд","left join Справочник.Единицы as Единицы (nolock) on $ТекущийОбъект.ОсновнаяЕдиница = Единицы.id");
	",10,2,1);
 



теперь ошибки внутри класса
Код
Выбрать все
ПоставщикДанных.Справочник::УстановитьПоставщикаДанных() : Ошибка в запросе.
ПоставщикДанных.УстТекстЗапроса(ТекстЗапроса);
авщикДанных.Справочник.ert(1049) }

ПоставщикДанных.ТабличноеПоле::Обновить() : ПоставщикДанных.Справочник::УстановитьПоставщикаДанных() : Ошибка в запросе.
ПоставщикДанных.УстТекстЗапроса(ТекстЗапроса);
авщикДанных.Справочник.ert(1049) }

вирт().Обновить();
авщикДанных.ТабличноеПоле.ert(590) }

ПоставщикДанных::Обновить() : ПоставщикДанных.ТабличноеПоле::Обновить() : ПоставщикДанных.Справочник::УстановитьПоставщикаДанных() : Ошибка в запросе.
ПоставщикДанных.УстТекстЗапроса(ТекстЗапроса);
авщикДанных.Справочник.ert(1049) }

вирт().Обновить();
авщикДанных.ТабличноеПоле.ert(590) }

ПоставщикДанных.ТабличноеПоле.Обновить();
авщикДанных.ert(186) }

ПоставщикДанных.Обновить();
{D:\1C_WORK\V7\ОСНОВНАЯБАЗА\BASESQL\1НОМЕНКЛАТУРА.ERT(196)}: ПоставщикДанных::Обновить() : ПоставщикДанных.ТабличноеПоле::Обновить() : ПоставщикДанных.Справочник::УстановитьПоставщикаДанных() : Ошибка в запросе.
ПоставщикДанных.УстТекстЗапроса(ТекстЗапроса);
авщикДанных.Справочник.ert(1049) }

вирт().Обновить();
авщикДанных.ТабличноеПоле.ert(590) }

ПоставщикДанных.ТабличноеПоле.Обновить();
авщикДанных.ert(186) }
 

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #487 - 29. Октября 2011 :: 15:21
Печать  
ты бы обработку прикрепил, а то уже и не понятно куда смотреть...
  
Наверх
wwwICQ  
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #488 - 30. Октября 2011 :: 10:24
Печать  
Да все разобрался, помог  Mikeware на мисте
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #489 - 31. Октября 2011 :: 05:32
Печать  
Еще одна проблема, нужно добавить колонку с ценой.

Делаю дополнительное соединение:

Код
Выбрать все
Данные.ДобавитьСоединениеДанных("ЦенаТовара","left join Справочник.Цены as Цены (nolock) on $ТекущийОбъект.ТекущийЭлемент = Цены.ParentExt");
 



добавляю колонку

Код
Выбрать все
  Данные.ДобавитьКолонкуДанных("Цена2","ТМЦ остаток2","$ПоследнееЗначение.Цены.Цена(Цены.id, :ВыбДата) as Цена","Число",10,2,1);
    Запрос=Данные.ПрямойЗапрос;
    Запрос.УстановитьТекстовыйПараметр("ВыбДата", ПолучитьДатуТА());
 



но как наложить условие по типу цены ?

если ниже попытаться передать условие:

Код
Выбрать все
 ТекстСоединения = "WHERE $Цены.ТипЦен = :ТипЦены ";
    Данные.ДобавитьСоединениеДанных("СодинениеТипЦены",ТекстСоединения);
 



то в окне табичного поля сообщение: incorrect syntax near the keyword 'where'
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #490 - 31. Октября 2011 :: 07:39
Печать  
рабочий кусок кода

Код
Выбрать все
	//{		Цены
	ДанныеСпр.ДобавитьКолонкуДанных("ТипЦен", "Тип цен", "$спрЦены.ТипЦен", "Справочник.ТипыЦен",,,1);
	ДанныеСпр.ДобавитьСоединениеДанных("ТипЦен", "
	|left join Справочник.Цены as спрЦены $nolock on $ТекущийОбъект.ТекущийЭлемент = $спрЦены.Владелец and $спрЦены.ТипЦен = :ВыбТипЦен
	|left join Справочник.Единицы as ОЕдиница $nolock on $ТекущийОбъект.ОсновнаяЕдиница = $ОЕдиница.ТекущийЭлемент
	|");

	ПЗ.УстановитьТекстовыйПараметр("ВыбТипЦен", ВыбТипЦен);
	ДанныеСпр.НоваяКолонка("ТипЦен");


	ДанныеСпр.ДобавитьКолонкуДанных("Цена", "Цены", "
	|(case
	|When $ПоследнееЗначение.Цены.Единица($спрЦены.ТекущийЭлемент,:ЗначениеГраницы~) = $ТекущийОбъект.БазоваяЕдиница Then $ПоследнееЗначение.Цены.Цена($спрЦены.ТекущийЭлемент,:ЗначениеГраницы~)
	|ELSE $ПоследнееЗначение.Цены.Цена($спрЦены.ТекущийЭлемент,:ЗначениеГраницы~) / $ОЕдиница.Коэффициент
	|END)
	|", "Число", 19, 2,1);

	ДанныеСпр.ДобавитьКолонкуДанных("Валюта", "Вал.", "$спрЦены.Валюта", "Справочник.Валюты",,,0);
	ПЗ.УстановитьТекстовыйПараметр("ЗначениеГраницы", ЗначениеГраницы);
	ДанныеСпр.НоваяКолонка("Цена");
	ДанныеСпр.НоваяКолонка("Валюта");
	//} 



ПЗ если непонятно это:

Код
Выбрать все
ПЗ = ПоставщикНоменклатура.Данные.ПрямойЗапрос; 

  
Наверх
wwwICQ  
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #491 - 02. Ноября 2011 :: 10:38
Печать  
спасибо, мне уже подсказали на мисте немного по другому
кому интересно выкладываю код :

Код
Выбрать все
	Данные.ДобавитьСоединениеДанных("ОснЕд","left join Справочник.Единицы as Единицы (nolock) on $ТекущийОбъект.ОсновнаяЕдиница = Единицы.id");

	Данные.ДобавитьСоединениеДанных("ЦенаТовара","left join Справочник.Цены as Цены (nolock) on $ТекущийОбъект.ТекущийЭлемент = Цены.ParentExt  and  $Цены.ТипЦен = :ТипЦены");
	Запрос=Данные.ПрямойЗапрос;
	Запрос.УстановитьТекстовыйПараметр("ТипЦены", ТипЦены);

	ТекстСоединения = "left join
	|	$РегистрОстатки.РезервыТМЦ(,Склад IN (SELECT Val FROM #ГруппаН),(Номенклатура),(Количество),) as rt
	|		on $ТекущийОбъект.ТекущийЭлемент = rt.Номенклатура
	|";
	Данные.ДобавитьСоединениеДанных("РезервПоТовару",ТекстСоединения);
	//Запрос=Данные.ПрямойЗапрос;
	Запрос.УложитьСписокОбъектов(глСписокСкладов, "#ГруппаН", "Склады");
	Данные.ДобавитьКолонкуДанных("КолРезерв","ТМЦ резерв","((CASE WHEN ( $ТекущийОбъект.ОсновнаяЕдиница <>  $ТекущийОбъект.БазоваяЕдиница) THEN ((ISNULL(rt.КоличествоОстаток,0) / $Единицы.Коэффициент))   ELSE (ISNULL(rt.КоличествоОстаток,0)) END))","Число",14,2,1);

	ТекстСоединения = "left join
	|	$РегистрОстатки.ОстаткиТМЦ(,Склад IN (SELECT Val FROM #ГруппаН1),(Номенклатура),(Количество),) as vt
	|		on $ТекущийОбъект.ТекущийЭлемент = vt.Номенклатура
	|";
	Данные.ДобавитьСоединениеДанных("ОстаткиПоТовару",ТекстСоединения);
	//Запрос=Данные.ПрямойЗапрос;
	Запрос.УложитьСписокОбъектов(глСписокСкладов, "#ГруппаН1", "Склады");
	Данные.ДобавитьКолонкуДанных("КолОстаток","ТМЦ остаток","((CASE WHEN ( $ТекущийОбъект.ОсновнаяЕдиница <>  $ТекущийОбъект.БазоваяЕдиница) THEN ((ISNULL(vt.КоличествоОстаток,0) / $Единицы.Коэффициент)) - ((ISNULL(rt.КоличествоОстаток,0) / $Единицы.Коэффициент))  ELSE (ISNULL(vt.КоличествоОстаток,0)) - (ISNULL(rt.КоличествоОстаток,0)) END))","Число",14,2,1);


	ТекстСоединения = "left join
	|	$РегистрОстатки.РезервыТМЦ(,Склад IN (SELECT Val FROM #ГруппаН2),(Номенклатура),(Количество),) as rt2
	|		on $ТекущийОбъект.ТекущийЭлемент = rt2.Номенклатура
	|";
	Данные.ДобавитьСоединениеДанных("РезервПоТовару2",ТекстСоединения);
	//Запрос=Данные.ПрямойЗапрос;
	Запрос.УложитьСписокОбъектов(глСписокПрочихМестХранения, "#ГруппаН2", "Склады");
	Данные.ДобавитьКолонкуДанных("КолРезерв2","ТМЦ резерв2","((CASE WHEN ( $ТекущийОбъект.ОсновнаяЕдиница <>  $ТекущийОбъект.БазоваяЕдиница) THEN ((ISNULL(rt2.КоличествоОстаток,0) / $Единицы.Коэффициент))   ELSE (ISNULL(rt2.КоличествоОстаток,0)) END))","Число",14,2,1);


	ТекстСоединения = "left join
	|	$РегистрОстатки.ОстаткиТМЦ(,Склад IN (SELECT Val FROM #ГруппаН3),(Номенклатура),(Количество),) as vt2
	|		on $ТекущийОбъект.ТекущийЭлемент = vt2.Номенклатура
	|";
	Данные.ДобавитьСоединениеДанных("ОстаткиПоТовару2",ТекстСоединения);
	//Запрос=Данные.ПрямойЗапрос;
	Запрос.УложитьСписокОбъектов(глСписокПрочихМестХранения, "#ГруппаН3", "Склады");
	Данные.ДобавитьКолонкуДанных("КолОстаток2","ТМЦ остаток2","((CASE WHEN ( $ТекущийОбъект.ОсновнаяЕдиница <>  $ТекущийОбъект.БазоваяЕдиница) THEN ((ISNULL(vt2.КоличествоОстаток,0) / $Единицы.Коэффициент)) - ((ISNULL(rt2.КоличествоОстаток,0) / $Единицы.Коэффициент))  ELSE (ISNULL(vt2.КоличествоОстаток,0)) - (ISNULL(rt2.КоличествоОстаток,0)) END))","Число",14,2,1);

	, :ВыбДата) ","Число",10,2,1);
	//Запрос=Данные.ПрямойЗапрос;
	Запрос.УстановитьТекстовыйПараметр("ВыбДата",  Конт.ДатаДок);


 



все равно большое спасибо, что ответили
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #492 - 02. Ноября 2011 :: 12:21
Печать  
В том же примере (ПоставщикДанных Справочник ) необходимо, что бы при выборе строки не открывался элемент справочника.

Судя по документации по ТП у события Выбор нет ФСО.
Смотрел документацию по ПоставщикуДанных, там есть похожее событие
ПередНачаломИзменения(ФСО), но все равно карточка элемента справочника открывается.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #493 - 02. Ноября 2011 :: 15:42
Печать  
dimm73 писал(а) 02. Ноября 2011 :: 12:21:
В том же примере (ПоставщикДанных Справочник ) необходимо, что бы при выборе строки не открывался элемент справочника.

Судя по документации по ТП у события Выбор нет ФСО.
Смотрел документацию по ПоставщикуДанных, там есть похожее событие
ПередНачаломИзменения(ФСО), но все равно карточка элемента справочника открывается.


у тебя должен быть выставлен РежимВыбора = 1;
  
Наверх
wwwICQ  
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #494 - 03. Ноября 2011 :: 02:34
Печать  
Большое спасибо (Anatol) РежимВыбора - то, что нужно
  
Наверх
 
IP записан
 
Kateryne
Junior Member
**
Отсутствует


1C++ rocks!

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

Как ОТКЛЮЧИТЬ сортировку по полю по нажатию колонки? Мешает операторам, случайно жмут.
ИзменятьПорядокСтрок = 0 распространяется, похоже, только на опции контектного меню.
Событие ПриВыбореЗаголовка срабатывает, но флага отмены там нет в параметрах Печаль
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #496 - 12. Ноября 2011 :: 10:47
Печать  
А не подскажет ли кто, как получить список документов, отображаемых в журнале ПоставщикДанных.Журнал (с учетом сортировок и отборов) ?
Выполняемый запрос вроде отображает только видимую на экране часть данных...
зы. заодно спрошу - а получить итоги кроме как отдельным запросом - можно?
  
Наверх
ICQ  
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #497 - 15. Ноября 2011 :: 04:39
Печать  
А есть описание группы классов ЭлементыФормы ?
Не могу найти!
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

Mikeware, см. метод "Выбрать" в документации как раз для этого и предназначен. Про итоги не понял.

mozer, точно не помню, надо бы на ноуте глянуть, но вроде нет.
  

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


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #499 - 16. Ноября 2011 :: 04:32
Печать  
vandalsvq писал(а) 15. Ноября 2011 :: 05:31:
Mikeware, см. метод "Выбрать" в документации как раз для этого и предназначен. Про итоги не понял.

     ИТЗ=ПоставщикДанных.Данные.Выбрать();
дает ошибку Для типизации поля "ТекущийДокумент", не найдено дополнительное типизирующее поле.

ТекущийОбъект.date_time_iddoc, Число БезПодготовки=0) : Для типизации поля "ТекущийДокумент", не найдено дополнительное типизирующее поле.
ЗапросODBC.ВыполнитьИнструкцию(ТекстЗапроса,ПолучательЗапроса,1);
{\\...\center\ПоставщикДанных\ПоставщикДанных.ПрямойЗапрос.ert(13148) }

Выборка = ПрямойЗапрос.Выполнить(,ТекстЗапросаВыборки);
{\\...\center\ПоставщикДанных\ПоставщикДанных.Журнал.ert(1461) }

По документации - пустое значение аргумента допускается...

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


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

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

С рождением доченьки я нашел куда убивать свое время Улыбка)
  

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



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #501 - 16. Ноября 2011 :: 10:36
Печать  
Предлагаю сделать возможность пометки на удаление выделенных строк в журналах (при выделении помечать на удаление и снимать пометку со всех выделенных). Измененный класс с реализацией этого новшества (ПоставщикДанных.Журнал.ert) прилагаю (сохранить, переименовать в ПоставщикДанных.Журнал.ert и скопировать вместо существующего класса ПоставщикДанных.Журнал.ert в каталоге классов).
  

_______________________004.ert ( 26 KB | Загрузки )
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #502 - 16. Ноября 2011 :: 15:09
Печать  
Добавление в панель кнопки с меню делаю так:
Код
Выбрать все
Кнопка = КоманднаяПанель.Кнопка("ВыборШрифта",3,,67,"ПриВыбореКоманды",я());
	Кнопка.Подсказка = "Выбор размера шрифта";
	Кнопка.ПараметрыДействия.ДобавитьЗначение(311);

	ВложеннаяКнопка = СоздатьОбъект("АссоциативныйВектор");
	ВложеннаяКнопка.Добавить("Р8","Р8");
	ВложеннаяКнопка.Добавить("Р8","Имя");
	ВложеннаяКнопка.Добавить("8","Текст");
	ВложеннаяКнопка.Добавить(я(),"Источник");
	ВложеннаяКнопка.Добавить("ПриВыбореКоманды","Действие");
	ПараметрыПроцедуры = СоздатьОбъект("СписокЗначений");
	ПараметрыПроцедуры.ДобавитьЗначение(311);
	ПараметрыПроцедуры.ДобавитьЗначение(8);
	ВложеннаяКнопка.Добавить(ПараметрыПроцедуры,"ПараметрыДействия");
	Кнопка.Кнопки.Добавить(ВложеннаяКнопка,"Р8");

	ВложеннаяКнопка = СоздатьОбъект("АссоциативныйВектор");
	ВложеннаяКнопка.Добавить("Р9","Р9");
	ВложеннаяКнопка.Добавить("Р9","Имя");
	ВложеннаяКнопка.Добавить("9","Текст");
	ВложеннаяКнопка.Добавить(я(),"Источник");
	ВложеннаяКнопка.Добавить("ПриВыбореКоманды","Действие");
	ПараметрыПроцедуры = СоздатьОбъект("СписокЗначений");
	ПараметрыПроцедуры.ДобавитьЗначение(311);
	ПараметрыПроцедуры.ДобавитьЗначение(9);
	ВложеннаяКнопка.Добавить(ПараметрыПроцедуры,"ПараметрыДействия");
	Кнопка.Кнопки.Добавить(ВложеннаяКнопка,"Р9");

	ВложеннаяКнопка = СоздатьОбъект("АссоциативныйВектор");
	ВложеннаяКнопка.Добавить("Р10","Р10");
	ВложеннаяКнопка.Добавить("Р10","Имя");
	ВложеннаяКнопка.Добавить("10","Текст");
	ВложеннаяКнопка.Добавить(я(),"Источник");
	ВложеннаяКнопка.Добавить("ПриВыбореКоманды","Действие");
	ПараметрыПроцедуры = СоздатьОбъект("СписокЗначений");
	ПараметрыПроцедуры.ДобавитьЗначение(311);
	ПараметрыПроцедуры.ДобавитьЗначение(10);
	ВложеннаяКнопка.Добавить(ПараметрыПроцедуры,"ПараметрыДействия");
	Кнопка.Кнопки.Добавить(ВложеннаяКнопка,"Р10");
	КоманднаяПанель.Добавить(Кнопка);
 



Правильно ли делаю, или можно по другому?
  
Наверх
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #503 - 18. Ноября 2011 :: 05:10
Печать  
vandalsvq писал(а) 16. Ноября 2011 :: 05:29:
Слушай, если печать журнала работает, значит можно проблему обойти.
Попробуй передать список колонок (ТекущийДокумент + что еще надо), исправлять ошибки я наврядли счас буду.

Список колонок попробовал передать - не может найти колонку ТекущийДокумент_вид для типизации документа.
В ПостоянныхПоляхЗапроса она есть, в СтрукткреЗапроса ее нет...
  
Наверх
ICQ  
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #504 - 18. Ноября 2011 :: 12:44
Печать  
vandalsvq писал(а) 16. Ноября 2011 :: 05:29:
Слушай, если печать журнала работает, значит можно проблему обойти.
Попробуй передать список колонок (ТекущийДокумент + что еще надо), исправлять ошибки я наврядли счас буду.
Улыбка)

Печать документа, кстати, не типизирует документ. она выводит лишь его реквизиты.
Добавил в создание структуры (процедура СчитатьМетаданныеЖурнала()) добаление колонки ТекущийДокумент_вид - в отображении журнала появилась лишняя колонка...
  
Наверх
ICQ  
IP записан
 
Kurya
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 24. Мая 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #505 - 19. Ноября 2011 :: 17:47
Печать  
ЛЮДИ!!!
Пожалуйста, киньте пример прикручивания Отбора для ПоставщикДанных.ИндексированнаяТаблица. Уже весь мозг сломал.
Некие данные выводятся в Табличное поле. Как приделать отбор по заданным колонкам? Желательно с использованием класса Объектv8.Отбор и Объектv8.ЭлементОтбора
Плиз! Помогите, я уже  Плачущий
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #506 - 21. Ноября 2011 :: 07:44
Печать  
Kurya писал(а) 19. Ноября 2011 :: 17:47:
ЛЮДИ!!!
Пожалуйста, киньте пример прикручивания Отбора для ПоставщикДанных.ИндексированнаяТаблица. Уже весь мозг сломал.
Некие данные выводятся в Табличное поле. Как приделать отбор по заданным колонкам? Желательно с использованием класса Объектv8.Отбор и Объектv8.ЭлементОтбора

Что не получается-то?
  
Наверх
ICQ  
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #507 - 23. Ноября 2011 :: 03:17
Печать  
А не подскажет ли кто, как при переходе в режим редактирования - отменить переход в редактирование данной ячейки, и активизировть редактирование (ввод/выбор) в нужной колонке?
ТП_ПередНачаломИзменения - на изменение ФСО не реагирует, редактирует все равно хоть при 1 хоть при 0
Новую колонку устанавливаю = получается, что редактирую "текущее значение" в другой колонке.
« Последняя редакция: 23. Ноября 2011 :: 05:29 - Mikeware »  
Наверх
ICQ  
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #508 - 23. Ноября 2011 :: 18:09
Печать  
Mikeware писал(а) 23. Ноября 2011 :: 03:17:
...
ТП_ПередНачаломИзменения - на изменение ФСО не реагирует, редактирует все равно хоть при 1 хоть при 0
Новую колонку устанавливаю = получается, что редактирую "текущее значение" в другой колонке.

На ФСО реагирует. Скорее всего ошибка у тебя в коде. У тебя ид контейнера точно "ТП_" ?
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #509 - 24. Ноября 2011 :: 04:18
Печать  
zk96 писал(а) 23. Ноября 2011 :: 18:09:
Mikeware писал(а) 23. Ноября 2011 :: 03:17:
...
ТП_ПередНачаломИзменения - на изменение ФСО не реагирует, редактирует все равно хоть при 1 хоть при 0
Новую колонку устанавливаю = получается, что редактирую "текущее значение" в другой колонке.

На ФСО реагирует. Скорее всего ошибка у тебя в коде. У тебя ид контейнера точно "ТП_" ?

Да, именно там ошибка была, разобрался уже. И в ПоставщикДанных.ИндексированнаяТаблица добавил строчку  в процедуре ИзменитьСтроку() после отработки процедуры модуляя ПередНачаломИзменения - повторное получение идентификатора текущей колонки.  Все заработало как надо.
Сейчас разбираюсь с контекстным меню Улыбка
  
Наверх
ICQ  
IP записан
 
Kurya
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 24. Мая 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #510 - 27. Ноября 2011 :: 21:05
Печать  
Mikeware писал(а) 21. Ноября 2011 :: 07:44:
Kurya писал(а) 19. Ноября 2011 :: 17:47:
ЛЮДИ!!!
Пожалуйста, киньте пример прикручивания Отбора для ПоставщикДанных.ИндексированнаяТаблица. Уже весь мозг сломал.
Некие данные выводятся в Табличное поле. Как приделать отбор по заданным колонкам? Желательно с использованием класса Объектv8.Отбор и Объектv8.ЭлементОтбора

Что не получается-то?


Да ничего с отбором не получается  Смущённый
Просто киньте примерчик простейший с установкой отбора в ИТЗ.
Дальше сам разберусь.
В поставщиках справочник, журнал и т.д отборы создаются автоматически. Смотрел как это реализовано - везде через запрос к соответствующим таблицам. А мне нужно прикруть отбор к уже существующей ИТЗ.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #511 - 28. Ноября 2011 :: 07:01
Печать  
Kurya писал(а) 27. Ноября 2011 :: 21:05:
А мне нужно прикруть отбор к уже существующей ИТЗ.


Дык а поставщиком для твоей ИТЗ что является ?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #512 - 28. Ноября 2011 :: 07:19
Печать  
Про отборы в ИТЗ уже писалось не однократно.
если всетаки необходим фильтр по итз, то
1. необходимо создать элементы отбора
2. применить заданные фильтры

2 Kurya что не получатся? первое или второе?
  
Наверх
wwwICQ  
IP записан
 
Kurya
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 24. Мая 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #513 - 28. Ноября 2011 :: 14:28
Печать  
Eprst писал(а) 28. Ноября 2011 :: 07:01:
Дык а поставщиком для твоей ИТЗ что является ?


Часть данных из запроса ODBC, часть расчетная.
  
Наверх
 
IP записан
 
Kurya
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 24. Мая 2006
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #514 - 28. Ноября 2011 :: 14:35
Печать  
Anatol писал(а) 28. Ноября 2011 :: 07:19:
Про отборы в ИТЗ уже писалось не однократно.
если всетаки необходим фильтр по итз, то
1. необходимо создать элементы отбора
2. применить заданные фильтры

2 Kurya что не получатся? первое или второе?


Перелопатил все три темы, писалось неоднократно, согласен, но все какими то кропалями. Вопрос про отбор в ИТЗ подымался неоднократно, но дальше:
1. необходимо создать элементы отбора
2. применить заданные фильтры
и "смотри доку" толком не описывалось ничего.
Насчет 1 и 2 сам понимаю, но сделать отбор не могу, не получается.
Поэтому и прошу простейший пример, что бы понять сам принцип.
Дальше сам доковыряю.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #515 - 28. Ноября 2011 :: 18:35
Печать  
Пример фильтра по ИТЗ  Смех
для поставщика 3 версии
  

_________________003.ert ( 52 KB | Загрузки )
Наверх
wwwICQ  
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #516 - 01. Декабря 2011 :: 10:13
Печать  
Подскажите как назначить порядок отображения колонок ?

Данное табличное поле (имитирующее подбор товаров с остатками) уже использовалось пользователями, необходимо добавить еще две расчетные колонки - добавляю но, они отображаются последними.

Как мне задать положение новых колонок ?

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #517 - 01. Декабря 2011 :: 10:39
Печать  
Попробуй их сдвинуть

Код
Выбрать все
Колонки = ПоставщикДанных.ТабличноеПоле.Колонки;
Колонки.Сдвинуть(3,(-1)); 

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


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #518 - 09. Декабря 2011 :: 14:00
Печать  
Расширение Журнал. Отбор по колонке
Данные.ДобавитьКолонкуДанных("ДолгКлиента","Долг клиента (общий текущий)",
 "(Выбрать ДолгОстаток Из Число",13,2,1);

валит 1С. Как побороть?
Данные колонки выводятся без проблем, пока не пытаешься использовать ее в отборе. Если тупо написать в условии (Клиент=NULL) - ничто не падает.
  
Наверх
GTalkICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

По моему эффективнее добавить соединение данных с "$РегистрОстатки", а колонку данных добавлять не как запрос, а как "СинонимРегистрОстатки.ИмяКолонки". Тогда и условие будет отрабатываться хорошо, и вообще намного оптимальнее получится.
  

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


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

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

Я было подумал сделать последний подарок и переработать класс и добавить некоторые вкусности (+ переработать класс прямой запрос)... буду хоть знать кого спрашивать
  

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



Сообщений: 37
Зарегистрирован: 22. Октября 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #521 - 11. Декабря 2011 :: 08:27
Печать  
vandalsvq писал(а) 10. Декабря 2011 :: 09:12:
Интересно сколько пользователей класса осталось?

Я было подумал сделать последний подарок и переработать класс и добавить некоторые вкусности (+ переработать класс прямой запрос)... буду хоть знать кого спрашивать

Сделай голосовалку Улыбка Я юзаю и слезать с него не собираюсь.
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #522 - 11. Декабря 2011 :: 12:27
Печать  
vandalsvq писал(а) 10. Декабря 2011 :: 09:12:
Интересно сколько пользователей класса осталось?

Я было подумал сделать последний подарок и переработать класс и добавить некоторые вкусности (+ переработать класс прямой запрос)... буду хоть знать кого спрашивать

Полагаю, что намного больше, чем ты думаешь Подмигивание
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #523 - 11. Декабря 2011 :: 12:56
Печать  
vandalsvq писал(а) 10. Декабря 2011 :: 09:11:
Kalen, Сам по себе запрос в соединении данных подобного рода - это зло чистой воды. И то что 1С валится, я даже не удивляюсь Улыбка сам упал.

По моему эффективнее добавить соединение данных с "$РегистрОстатки", а колонку данных добавлять не как запрос, а как "СинонимРегистрОстатки.ИмяКолонки". Тогда и условие будет отрабатываться хорошо, и вообще намного оптимальнее получится.

Да, через соединение с ВТ все работает. Но мне кажется, этот вариант имеет существенный недостаток. Точнее этот недостаток имеет любое соединение с ВТ большого объема. ВТ, как я понимаю, не имеет индексов. Поэтому соединение идет весьма медленно. Если строить ВТ внутри колонки, то условие Клиент=<ТекКлиент> позволяет использовать индекс при самом построении ВТ. Вот я и решил - пусть лучше NNN однострочных ВТ, чем одна NNN-строчная, которую надо соединять тупым перебором.
В чем же именно зло?
  
Наверх
GTalkICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #524 - 12. Декабря 2011 :: 13:25
Печать  
Kalen, зло - это как будет выглядеть условие "ГДЕ" Улыбка

Кстати для оптимизации запроса можно использовать момент когда устанавливается отбор, чтобы изменять соединение данных. Я попробую эту идею воплотить, возможно что небольшие изменения будут в классе, но потом будет проще.

А вообще, по хорошему я все таки соединялся бы не с ВТ, а с врем. таблицей. Куда пихал бы данные. Понимаю что тогда надо чтобы пользователь знал о моменте снятия данных, чтобы обновлять их можно было, но это было бы более эффективно.
  

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


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #525 - 13. Декабря 2011 :: 14:08
Печать  
vandalsvq писал(а) 10. Декабря 2011 :: 09:12:
Интересно сколько пользователей класса осталось?
...

Я хот и не юзаю ПоставщикДанных, но много кода стырил  Смех
А класс ПрямойЗапрос буду использовать, что бы не возится с переделкой под 1sqlite.
Саша, а ты на Инфостаре тоже сделай голосовалку, ведь достаточно людей сюда не заходят, хотя используют твои классы.
  
Наверх
 
IP записан
 
Igor Nikolaenko
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 47
Зарегистрирован: 01. Апреля 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #526 - 13. Декабря 2011 :: 21:25
Печать  
vandalsvq писал(а) 10. Декабря 2011 :: 09:12:
Интересно сколько пользователей класса осталось?

Я было подумал сделать последний подарок и переработать класс и добавить некоторые вкусности (+ переработать класс прямой запрос)... буду хоть знать кого спрашивать


Используем и будем использовать ещё долго. Особенно класс "Прямой запрос". Готов помочь с анализом и оптимизацией существующего кода классов.
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #527 - 15. Декабря 2011 :: 07:06
Печать  
Использую частично, не все классы. Переделал немного под свои нужды. Пришлось переделать класс Сервис, выделить подкласс для картинок, чтобы они грузились сразу при старте системы и один раз, потому что было замечено, если пользователи открывают много журналов, то наступал момент когда картинки уже не загружались а выдавалось сообщение о невозможности загрузки картинки. А так разработка очень полезна.
  
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


1C++ rocks!

Сообщений: 2
Зарегистрирован: 15. Декабря 2011
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #529 - 15. Декабря 2011 :: 11:10
Печать  
Помогите! плиз.
Сделал таблицу для справочника подтянул все реквизиты, но у меня цены в подчиненном справочнике. Как добавить колонку я уже понял но как сделать так чтобы в эту колонку отображались данные из функции, которая у меня есть

Что то вроде      
 
ДанныеЖурнал.Колонки.Добавить(Идентификатор).Данные="глПолучитьЦенуПоБлюду(ТабличноеПоле.ТекущаяСтрока,Подразделение,ДатаК,""Цена"")";

те чтобы данные брались не из справочника а из указанной моно функции в мою колонку
  
Наверх
 
IP записан
 
Igor Nikolaenko
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 47
Зарегистрирован: 01. Апреля 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #530 - 15. Декабря 2011 :: 16:07
Печать  
vandalsvq писал(а) 15. Декабря 2011 :: 08:46:
pvase, готов рассмотреть любые предложения для включения в систему Подмигивание


Было бы не плохо добавить возможность управлять режимом сохранения текущих настроек колонок ТП, добавив в ПоставщикДанных.ТабличноеПоле.ert соответствующий флаг:

Перем АвтоСохранениеНастроекКолонок Экспорт; // 1/0 - сохранять/не сохранять текущие настройки колонок ТП

Добавить проверку этого флага при выполнении процедур:

СоздатьТабличноеПоле()
     Если АвтоСохранениеНастроекКолонок=1 Тогда
           я().ВосстановитьПозициюКолонок();
     КонецЕсли;

ПриУничтожении()
     Если АвтоСохранениеНастроекКолонок=1 Тогда
           я().СохранитьПозициюКолонок();
     КонецЕсли;

  
Наверх
 
IP записан
 
Igor Nikolaenko
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 47
Зарегистрирован: 01. Апреля 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #531 - 15. Декабря 2011 :: 16:21
Печать  
vandalsvq писал(а) 15. Декабря 2011 :: 08:46:
pvase, готов рассмотреть любые предложения для включения в систему Подмигивание


Еще можно внести изменение в ПоставщикДанных.КоманднаяПанель.ert, что бы при отсутствии Microsoft Office можно было пользоваться данным классом, естественно без использования функционала командной панели.

ПоставщикДанных.КоманднаяПанель.ert
Процедура УстановитьНаборПиктограмм
     Попытка
           КартинкиПанелиУправления = СоздатьОбъект("MSComctlLib.ImageListCtrl");
     Исключение
           Возврат;
     КонецПопытки;

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


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

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

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


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

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

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #534 - 17. Декабря 2011 :: 23:16
Печать  
И еще одна фишка, которую я собственно хотел анонсировать.
Суть "фишки" - это сочетание использования прямого запроса и поставщика данных "Отбор" чтобы сделать возможность отбора данных в отчетах.
Например: у вас есть отчет. Предположим он собирается следующим запросом:
Код
Выбрать все
ВЫБРАТЬ Код, Наименование, ПометкаУдаления ИЗ Справочник.Контрагенты 


И вы хотите сделать возможность пользователю отбора по полям "Наименование" и "Пометка удаления".
Ранее был добавлена возможность отображать в ТП объект "Объектыv8.Отбор". Что собственно позволяло делать таблицу элементов отбора для размещения на форме. Собственно рассмотрим код для добавления ТП и размещения полей отбора.
Код
Выбрать все
ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
ПоставщикДанных.ТипЗначений = "Отбор";
ПоставщикДанных.КонтейнерКоманднойПанели = "ИДКоманднаяПанель";
ПоставщикДанных.КонтейнерТабличногоПоля = "ОтборСписок";

ТабличноеПоле = ПоставщикДанных.ТабличноеПоле;
ТабличноеПоле.СтильЗаголовков = 1;
ТабличноеПоле.СтильРамки = 1;

Данные = ПоставщикДанных.Данные;

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

ПолеНастройкиНаименование =
ПолеНастройкиНаименование.Родитель = "Справочник.Контрагенты";
ПолеНастройкиНаименование.ПутьКДанным = "Наименование";

ПолеНастройкиПометкаУдаления = ДобавитьПолеНастройки(ПоляНастройки,"ПометкаУдаления","Пометка удаления","Число.1.0");
ПолеНастройкиПометкаУдаления.Родитель = "Справочник.Контрагенты";
ПолеНастройкиПометкаУдаления.ПутьКДанным = "ПометкаУдаления";

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

Отбор.Добавить("Наименование");
Отбор.Добавить("ПометкаУдаления");

Данные.СоздатьКнопкиПоУмолчанию();

ТабличноеПоле.ВосстановитьПозициюКолонок();
ПоставщикДанных.Обновить(); 


В итоге пользователь видит табличную часть с полями "Наименование" и "Пометка удаления".
В результате он выбирает какие то настройки и хочет сформировать отчет. На текущий момент чтобы модифицировать запрос необходимо "вручную" проанализировать элементы отбора. Собственно со следующего релиза, будет добавлена возможность получать значение отбора в виде запроса, кроме того с подставлением параметров в объект "ПрямойЗапрос".
Выглядеть это будет так:
Код
Выбрать все
Отбор.Наименование.Установить("Рога и копыта", 1); // отбор по контрагенту "Рога и копыта"
ТекстОтбора = Отбор.Наименование.ПолучитьТекстОтбора(Запрос);
ТекстОтбора = СтрЗаменить(ТекстОтбора, "[ОсновнаяТаблица]", "");
Запрос.Текст = Запрос.Текст + " ГДЕ " + ТекстОтбора; 



В результате текст запроса будет
Код
Выбрать все
ВЫБРАТЬ Код, Наименование, ПометкаУдаления ИЗ Справочник.Контрагенты ГДЕ descr = 'Рога и копыта' 

.

Собственно я понимаю что чтобы запросы работали эффективно надо вставлять не так примитивно как я это сделал, но собственно говоря полдела как я считаю уже положено.

Надо сказать что до конца с синтаксисом я не определился. Варианта 3 пока я вижу:
1. Научить класс "ПрямойЗапрос" работать с объектом "Отбор". Считывать элементы, устанавливать параметры, возвращать текст запроса.
2. Научить класс "ПрямойЗапрос" формировать текст запроса (с одновременной установкой параметров)
3. Научить класс "ЭлементОтбора" формировать текст запроса (с установкой параметров если ему передан класс "ПрямойЗапрос")

Ну как то так. Обсуждаем?
  

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


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #535 - 20. Декабря 2011 :: 14:26
Печать  
Цитата:
1. Научить класс "ПрямойЗапрос" работать с объектом "Отбор". Считывать элементы, устанавливать параметры, возвращать текст запроса.
2. Научить класс "ПрямойЗапрос" формировать текст запроса (с одновременной установкой параметров)
3. Научить класс "ЭлементОтбора" формировать текст запроса (с установкой параметров если ему передан класс "ПрямойЗапрос")

Можно уточнить, что подразумевается под вторым вариантом?
Мне кажется в 3-м случае будет сложнее оптимизировать запрос.
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #536 - 20. Декабря 2011 :: 14:39
Печать  
vandalsvq писал(а) 12. Декабря 2011 :: 13:25:
Кстати для оптимизации запроса можно использовать момент когда устанавливается отбор, чтобы изменять соединение данных. Я попробую эту идею воплотить, возможно что небольшие изменения будут в классе, но потом будет проще.

Я вообще не знаю, почему никто ничего не говорит про оптимизацию соединений. Имхо, это еще важнее, чем оптимизация полей.
Пробовал реализовать своими силами - фигня получается. Выходит, что это надо реализовывать где-то в провайдере sqlite вместе и по аналогии с оптимизацией полей. Это он ведь ненужные поля удаляет из запроса, а не Поставщик, или я чего-то напутал?

Словом, очень хочется чтобы из запроса удалялись не только неиспользуемые в ТП колонки, но и соединения для них.
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #537 - 20. Декабря 2011 :: 14:45
Печать  
По поводу сохранения настроек ТП... что-то у меня они не сохраняются, если сразу закрывать саму 1сь. При закрытии непосредственно формы - все пучком. Раньше, вроде, по-любому сохранялось. ++ 3.2.3.14
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #538 - 20. Декабря 2011 :: 15:00
Печать  
Igor Nikolaenko писал(а) 15. Декабря 2011 :: 16:21:
Еще можно внести изменение в ПоставщикДанных.КоманднаяПанель.ert,...

А мне бы тут хотелось поуправлять позицией размещения кнопок
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #539 - 20. Декабря 2011 :: 15:21
Печать  
В Отборе:
  • Когда тип поля = Число.1.0, в колонке оно выводится как флажок, а в отборе поле ввода. Учитывая неоднозначность может добавить свойство "ИспользоватьФлажок"?
  • тип колонки Число.13.2, а в поле ввода значения отбора не могу ввести больше 9.99
  • повесь ctrl-Enter на ОК
  • При открытии настройки обора автоматом переходить на поле, соответствующее текущей колонке списка
  • Упорядочить список полей отбора по названию поля
  • Добавить возможность интерактивной сортировки списка полей отбора по колонке "использование" (поднять те, что включены. не шариться по всему списку)
  
Наверх
GTalkICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

2 Kalen1. Оптимизирует провайдер, т.е. ВК 1sqlite и 1C++. Соответственно они отвечают за "отцепление" полей. Отцеплять соединения они не умеют. Если надо тут уже не ко мне. 2. По поводу сохранения настроек уже давно ничего не трогал. Посмотрю как у меня, если смогу повторить, наверное смогу и исправить. 3. На счет смещения кнопок, подумаю... в план включу.
По поводу отбора: ошибку с число-флажок посмотрю, форматирование исправил уже, предопрделенную кнопку сделаю, автопереход подумаю, упорядочивание принято, сортировку для поставщика отбор может впилю.

Чет ты разошелся... до НГ времени мало, из-за тебя подарок не получится  Смех
  

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



Сообщений: 99
Местоположение: Russia, Moscow
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #541 - 23. Декабря 2011 :: 14:10
Печать  
ПоставщикДанных.ИндексированнаяТаблица

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


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

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

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



Сообщений: 99
Местоположение: Russia, Moscow
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #543 - 26. Декабря 2011 :: 08:00
Печать  
По-моему вопросу: думаю, он решился бы легко, если было бы событие типа "ПриДобавленииСтроки", которое вызывалось бы после добавления новой строки поставщиком. Или можно отловить этот момент как-то по-другому?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #544 - 26. Декабря 2011 :: 09:29
Печать  
может тебе подайдет ПередНачаломДобавления ?
  
Наверх
wwwICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #545 - 26. Декабря 2011 :: 19:51
Печать  
Anatol, перед началом добавления прийдется самому добавлять строку, неудобно.
grayrat, в 8-ке есть метод "ПриНачалеРедактирования", но там логика работы ТП немного отличается. Можно допилить конечно, но есть в принципе "ПередНачаломИзменения". И все что надо это либо после добавления строки сделать событие (и будет все хорошо), либо сделать авторедактирование после добавления Улыбка выбирай вариант Улыбка
  

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



Сообщений: 99
Местоположение: Russia, Moscow
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #546 - 26. Декабря 2011 :: 20:54
Печать  
2  vandalsvq: Собственно у себя я и сделал событие после добавления строки. Но естественно хочется это видеть и в релизе.
2 Anatol: Перед добавлением не очень подходит - так как "ДобавитьСтроку" там использовать не получится. Придется вообще огород городить.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

Почти полностью доделал документацию... Офигеть, уже 194 страницы. И это я еще не написал как делать расширения самостоятельно... есть подозрение что я опять этот блок опущу. Не видел я много желающих написать "ПоставщикДанных.МояЛабуда" Улыбка
  

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #548 - 28. Декабря 2011 :: 05:16
Печать  
было бы интересно посмотреть
  
Наверх
wwwICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #549 - 28. Декабря 2011 :: 05:53
Печать  
Anatol, а что бы ты хотел посмотреть? Улыбка Бета-релиз или бета-документацию, или тот самый блок "ПоставщикДанных своими руками" Улыбка)))
  

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #550 - 28. Декабря 2011 :: 06:29
Печать  
тот самый блок "ПоставщикДанных своими руками"  Круглые глаза
  
Наверх
wwwICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #551 - 28. Декабря 2011 :: 07:42
Печать  
Есть мысль кое что допилить чтобы реализация была проще... например научить ПоставщикДанных (главный объект) подключать чужие объекты, которые будут реализованы определенным образом (т.е. будут правила и ограничения, но не существенные)... в итоге я вижу какой-то такой "интерфейс"
Код
Выбрать все
Поставщик = СоздатьОбъект("ПоставщикДанных");
Поставщик.ДобавитьРасширение(ИмяКлассаРасширения);
Поставщик.КонтейнерТабличногоПоля = "ТП";
Поставщик.КонтейнерКоманднойПанели = "КП"; 



Ну как то так твой объект будет таким же расширением как счас справочник, документ, журнал и т.д. Однако список атрибутов и методов которые надо реализовать счас достаточно широк. Я думаю немного переработать общение объектов друг с другом, чтобы немного где-то упростить, где-то усложнить, но в целом сделать более универсальным и понятным.

Вот тогда можно будет писать свои собственные поставщики для произвольных запросов и т.п. Но отвечать за все будет сам "программист". Табличное поле и командная панель будут лишь говорить о действиях и требовать некоторые "ответы". Соответственно обработка этих действий и ответы на них - это уже решение ваше...

Блин вот понаписал-то
  

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


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

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

4.3.1 от 01.01.12 г.
- Доработана документация. Исправлены найденные ошибки, добавлены ранее недокументированные возможности.
- Унифицирован механизм редактирования значений. Список поддерживаемых типов при редактировании см. в подразделе «Допустимые типы» объекта «ПоставщикДанных.ОписаниеТипов»
- Новый атрибут «АвтосохранениеНастроекКолонок» и «ИнтерактивнаяСортировка» для элемента управления «ПоставщикДанных.ТабличноеПоле».
- Добавлено новое событие «ПриФормированииКонтекстногоМеню» для объекта «ПоставщикДанных.ТабличноеПоле»
- Добавлен новый объект «ПоставщикДанных.БиблиотекаКартинок»
- Добавлен новый атрибут «БиблиотекаКартинок» у объекта «ПоставщикДанных»
- Изменена форма выбора группы справочника на объект «ПоставщикДанных.ДеревоЗначений» с использованием параметризированного запроса
- Для объекта-расширения «ПоставщикДанных.Отбор» изменено представление значений (реализовано представление для списка значений)
- Форма настройки при открытии старается установить текущую строку согласно колонке табличного поля для которого вызвана настройка. Кнопка «ОК» сделана «по умолчанию» для формы.
- Исправлены выявленные ошибки

Полный список изменений можно найти в главной теме. Официальный релиз может быть уже после нового года. Но постараюсь не затягивать. Я сделал уже много. Из "вкусного" осталось чуток.

Возможны некоторые проблемы с редактированием или еще с чем. Пишите все что найдете "нового" и "необычного". Об ошибках тоже можно.
« Последняя редакция: 30. Декабря 2011 :: 06:45 - vandalsvq »  

1Cv7_ext_TF_009.rar ( 990 KB | Загрузки )

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


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #553 - 30. Декабря 2011 :: 02:09
Печать  
vandalsvq писал(а) 29. Декабря 2011 :: 21:24:
И так пока "альфа" или "бета" как вам нравится Улыбка

4.3.1 от 01.01.12 г.


во всех поставщика:

"Получаемая строка превысит допустимые размеры"
"Возникла ошибка в оригинальном обработчике события ПослеСозданияФормы"

ПоставщикДанныхЗаявки.ТипЗначений = "Документ.ЗаявкаПокупателя";
{Отчет.Журнал_ЗаявкиПокупателей.Форма.Модуль(53)}: ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=Документ.ЗаявкаПокупателя) : ПоставщикДанных.Документы::ПриЗаписи_ВидДокумента(Стро

Валится после выполнения: "ПоставщикДанных.ВидДокумента = Сред(ТипЗначений,10);"
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #555 - 30. Декабря 2011 :: 06:11
Печать  
vandalsvq писал(а) 30. Декабря 2011 :: 05:30:
ОК, принято Улыбка
Не принято. Полный текст ошибки валится в предприятии обычно. Обрезанный мне ни о чем не говорит к сожалению.
Или другой вариант - мне надо текст инициализации поставщика, или тестовый пример... конфа + обработка.
У меня ПоставщикДанных.Документы - работает


Полный текст ошибки - в посте - как есть скопировал - он "обрезан"

Если остановить Отладчиком - пишет после прохождения точки останова:

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

{D:\BASES\ELIS\TOTALCNT\CLASSES\ПоставщикДанных\ПоставщикДанных.ert(0) }

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

{D:\BASES\ELIS\TOTALCNT\CLASSES\ПоставщикДанных\ПоставщикДанных.ert(0) }

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

{D:\BASES\ELIS\TOTALCNT\CLASSES\Постав
ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=Документ.ЗаявкаПокупателя) : ПоставщикДанных.ТабличноеПоле::Конструктор() : ПоставщикДанных.Сервис::Конструктор() : ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=Документ.ЗаявкаПокупателя) :
ПоставщикДанныхЗаявки.ТипЗначений = "Документ.ЗаявкаПокупателя";
{Отчет.Журнал_ЗаявкиПокупателей.Форма.Модуль(53)}: ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=Документ.ЗаявкаПокупателя) : ПоставщикДанных.ТабличноеПоле::Конструктор() : Поставщ"

Поставщики не работают ВСЕ
вот один пример:
Код
Выбрать все
//======================================================================
Перем ПоставщикДанныхЗаявки, ДанныеДокЗаяки;
....
Процедура ПослеСозданияФормы()

	ВидыСравнения = СоздатьОбъект("ПоставщикДанных.ВидыСравнения");

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

	ТПЗаявки = ПоставщикДанныхЗаявки.ТабличноеПоле;
	ТПЗаявки.СтильЗаголовков = 1;
	ТПЗаявки.СтильРамки = 1;

	ДанныеДокЗаяки = ПоставщикДанныхЗаявки.Данные; //Объект-расширение!!!
	ДанныеДокЗаяки.СоздатьКнопкиПоУмолчанию();
	ДанныеДокЗаяки.НоваяКолонка("Фирма");
	ДанныеДокЗаяки.НоваяКолонка("Проект");
	ДанныеДокЗаяки.НоваяКолонка("Контрагент");
	ДанныеДокЗаяки.НоваяКолонка("ТТочка");
	ДанныеДокЗаяки.НоваяКолонка("Сумма");

	Колонки = ТПЗаявки.Колонки;
	Колонки.Контрагент.Ширина = 80;
	Колонки.ТТочка.Ширина = 60;
	Колонки.Фирма.Ширина = 50;
	Колонки.Проект.Ширина = 60;

	ПоставщикДанныхЗаявки.Обновить();

КонецПроцедуры // ПослеСозданияФормы
 



Компоненты
1CPP.dll - 3.2.3.17
1sqlite.dll - 1.0.2.3
...
вобщем все свежее, порядок загрузки и т.д., все ок
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

У меня то все поставщики работают Улыбка.
Кстати DBF или SQL? (вот последний еще чуток надо погонять)


Наверное ничего не надо, скорее всего проблема в том что не все классы выложил.
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #557 - 30. Декабря 2011 :: 06:43
Печать  
Ну конечно.... Надо ведь и все другие классы (Отборы, дерево и пр.) сча выложу Улыбка
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #558 - 30. Декабря 2011 :: 06:45
Печать  
Положил правильные классы (теперь все) в сообщение про бету Улыбка
  

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


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #559 - 30. Декабря 2011 :: 06:58
Печать  
vandalsvq писал(а) 30. Декабря 2011 :: 06:45:
Положил правильные классы (теперь все) в сообщение про бету Улыбка


""Вот теперь тебя люблю я,
Вот теперь тебя хвалю я!"  Подмигивание

Все заарбайтен. С наступающим!

Офтоп: вот что-нибудь из этого хочу на каникулах попробовать приготовить:
http://stalic.livejournal.com/333061.html
  
Наверх
ICQ  
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #560 - 30. Декабря 2011 :: 07:29
Печать  
А для чего можно использовать "ПоставщикДанных.ДеревоЗначений"?  В демоконфе непонятно вообще, как он работает.  
Вообще интересует, можно ли как-то(возможно и с другим поставщиком) отображать сгруппированную индексированную таблицу, чтоб тзПотомки отображались как группировки в екселе?
  

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


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

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

Всех с наступающим... я ушел принадлежать семье. Как только... ну так и сразу.  Класс
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #562 - 04. Января 2012 :: 10:09
Печать  
У всех усиленный НГ идет я так понимаю Улыбка)) ну что ж, поздравляю всех и вся Улыбка.
Я тоже пока ушел, только вот в 8-ку, как только народ начнет просыпаться, так и вернусь бету и альфу допиливать в офф. релиз.
  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #563 - 11. Января 2012 :: 06:14
Печать  
Уф! Вроде бы с ДеревомЗначений немного разобрался. Появились два вопроса:
1) Как программно раскрыть все узлы дерева?
2) Почему у меня
Код
Выбрать все
Данные.СортироватьПоУбыванию(); 

не хочет сортировать?
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #564 - 11. Января 2012 :: 07:48
Печать  
1. Вроде бы пока никак... надо посмотреть и если что доработать
2. Посмотри по доке (или в коде)...вполне возможно что пока обработки метода не написано... я точно не помню Улыбка
  

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


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #565 - 11. Января 2012 :: 11:04
Печать  
есть справочники Клиенты,карты,связьКартыСКлиентом.
И есть мысль реализовать форму с двумя ТП
1 ТП - клиенты
2 ТП - карты
при переходе по строкам 1 ТП во 2 ТП отображатся должны карты имено выбранного элемента 1ТП

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #566 - 11. Января 2012 :: 11:25
Печать  
mozer, не туда смотришь.
Делаешь 2 поставщика. При активизации строки первого изменяешь  отбор второго + обновление второго. Но тебе надо знать список карт, его получаешь из заранее созданного параметризированного запроса (чтобы было побыстрее). Вот и все в принципе.
  

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


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #567 - 11. Января 2012 :: 11:51
Печать  
vandalsvq писал(а) 11. Января 2012 :: 11:25:
mozer, не туда смотришь.
Делаешь 2 поставщика. При активизации строки первого изменяешь  отбор второго + обновление второго. Но тебе надо знать список карт, его получаешь из заранее созданного параметризированного запроса (чтобы было побыстрее). Вот и все в принципе.

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #568 - 11. Января 2012 :: 12:05
Печать  
Да. И Выборку делать через ПрямойЗапрос.ВыполнитьПараметризированныйЗапрос() будет намного продвинутее Улыбка))))
  

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


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #569 - 12. Января 2012 :: 04:07
Печать  
вот еще вопрос ... Это мой первый опыт по созданию списка с помощью поставщика данных.
У меня по чему то в стандартном списке справочника, если там писать код по организации вывода в ТП 1С вываливается с ошибкой.
тот же код в обработке написаный работает нормально. У всех так или я чего то не занаю.

Валится при закрытии формы списка.
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #570 - 12. Января 2012 :: 04:20
Печать  
А у меня так и не получилось заставить тестовую базу работать... :\
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #571 - 12. Января 2012 :: 04:38
Печать  
mozer писал(а) 12. Января 2012 :: 04:07:
вот еще вопрос ... Это мой первый опыт по созданию списка с помощью поставщика данных.
У меня по чему то в стандартном списке справочника, если там писать код по организации вывода в ТП 1С вываливается с ошибкой.
тот же код в обработке написаный работает нормально. У всех так или я чего то не занаю.

Валится при закрытии формы списка.


Имхо, лучше не использовать "родную" форму списка. у меня тоже при закрытии "обвалы" были, так и не поборол. В итоге использую форму Отчета, а чтобы форма не закрывалась по <Esc> - перехватываю нажатие в ПриНажатииКнопкиКлавиатуры по содержанию названия отчета:

Код
Выбрать все
Процедура ПриНажатииКнопкиКлавиатуры(Конт,КодКлавиши,Alt,Shift,Ctrl,Символ,ФСО)

	//Отмена Esc для Отчета-"Журнала", "Справочника"
	Если КодКлавиши = 27 Тогда
		Попытка
			ФормаРасш.УстановитьФорму(Конт.Форма);
			Если Найти(ФормаРасш.ПолныйТипОбъекта(),"Отчет") > 0 Тогда
				Если (Найти(ФормаРасш.ПолныйТипОбъекта(),"Журнал_")>0) ИЛИ (Найти(ФормаРасш.ПолныйТипОбъекта(),"Справочник_")>0)  Тогда
					ФСО = 0;
				КонецЕсли;
			КонецЕсли;
		Исключение

		КонецПопытки;
	КонецЕсли;

КонецПроцедуры
 

  
Наверх
ICQ  
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #572 - 12. Января 2012 :: 04:41
Печать  
Dolly_EV писал(а) 12. Января 2012 :: 04:38:
mozer писал(а) 12. Января 2012 :: 04:07:
вот еще вопрос ... Это мой первый опыт по созданию списка с помощью поставщика данных.
У меня по чему то в стандартном списке справочника, если там писать код по организации вывода в ТП 1С вываливается с ошибкой.
тот же код в обработке написаный работает нормально. У всех так или я чего то не занаю.

Валится при закрытии формы списка.


Имхо, лучше не использовать "родную" форму списка. у меня тоже при закрытии "обвалы" были, так и не поборол. В итоге использую форму Отчета, а чтобы форма не закрывалась по <Esc> - перехватываю нажатие в ПриНажатииКнопкиКлавиатуры по содержанию названия отчета:

Код
Выбрать все
Процедура ПриНажатииКнопкиКлавиатуры(Конт,КодКлавиши,Alt,Shift,Ctrl,Символ,ФСО)

	//Отмена Esc для Отчета-"Журнала", "Справочника"
	Если КодКлавиши = 27 Тогда
		Попытка
			ФормаРасш.УстановитьФорму(Конт.Форма);
			Если Найти(ФормаРасш.ПолныйТипОбъекта(),"Отчет") > 0 Тогда
				Если (Найти(ФормаРасш.ПолныйТипОбъекта(),"Журнал_")>0) ИЛИ (Найти(ФормаРасш.ПолныйТипОбъекта(),"Справочник_")>0)  Тогда
					ФСО = 0;
				КонецЕсли;
			КонецЕсли;
		Исключение

		КонецПопытки;
	КонецЕсли;

КонецПроцедуры
 



Значит по верному пути пошел, что создаю отдельный список в обработке.  Улыбка
По прехвату спасибо. Незнал
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #573 - 12. Января 2012 :: 06:19
Печать  
ОбластьТаблицы.Объединение = 1;
ЬТАБЛИЧНОГОПОЛЯ.ERT(390)}: Поле агрегатного объекта не обнаружено (Объединение)

Ошибка при попытке распечатать! ((
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #574 - 15. Января 2012 :: 12:24
Печать  
mozer писал(а) 12. Января 2012 :: 06:19:
ОбластьТаблицы.Объединение = 1;
ЬТАБЛИЧНОГОПОЛЯ.ERT(390)}: Поле агрегатного объекта не обнаружено (Объединение)

Ошибка при попытке распечатать! ((


Йоксель есть? свежий?
  
Наверх
ICQ  
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #575 - 16. Января 2012 :: 09:32
Печать  
Есть! Свежий !
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #576 - 16. Января 2012 :: 10:13
Печать  
mozer писал(а) 16. Января 2012 :: 09:32:
Есть! Свежий !

Ну тогда не знаю  Озадачен.. метод "Объединение" - это из Йокселя
  
Наверх
ICQ  
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #577 - 16. Января 2012 :: 12:05
Печать  
vandalsvq писал(а) 11. Января 2012 :: 11:25:
mozer, не туда смотришь.
Делаешь 2 поставщика. При активизации строки первого изменяешь  отбор второго + обновление второго. Но тебе надо знать список карт, его получаешь из заранее созданного параметризированного запроса (чтобы было побыстрее). Вот и все в принципе.

Все сделал отбор делается все круто, но сейчас у меня по умолчанию поиск идет по ТП карт, а нужно по ТП клиентов.
Как побороть?
Тоесть фокус всегда на ТП карт.
  
Наверх
 
IP записан
 
Igor Nikolaenko
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 47
Зарегистрирован: 01. Апреля 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #578 - 16. Января 2012 :: 21:04
Печать  
Спасибо за замечательное обновление класса.

В ПоставщикДанных.ВыборГруппы.ert необходимо внести исправление, а то выбор групп корректно работает только для справочника Контрагенты:

ПоставщикДанных.ВыборГруппы.ert
Процедура ЗаполнитьДанныеУзлаДерева(РодительЗначение = "")
     Если ПустоеЗначение(РодительЗначение) = 1 Тогда
           РодительЗначение = ПолучитьПустоеЗначение("Справочник.Контрагенты");
     КонецЕсли;

Заменить на:
           РодительЗначение = ПолучитьПустоеЗначение("Справочник." + ВидСправочника);
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #579 - 17. Января 2012 :: 07:48
Печать  
В ПоставщикДанных.Сервис.ert добавил сверху атрибуты:
Код
Выбрать все
Перем КартинкаТабличногоПоля Экспорт;
Перем КартинкаКоманднойПанели Экспорт;
 


а то перестало работать "КартинкаТП = ПДСервис.КартинкаТабличногоПоля;"
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #580 - 17. Января 2012 :: 08:44
Печать  
Dolly_EV, смотри в сторону класса "Библиотека картинок". Теперь он заведует всей этой частью (библиотека может быть создана самостоятельно, а может быть получена из созданного поставщика данных).

Igor Nikolaenko, ОК учту.

Смотрю начинается "отход" от нового года Улыбка))) это радует Улыбка
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #581 - 17. Января 2012 :: 21:40
Печать  
Уже почти официальная версия 4.3.1 (от 18.01.12 г.). Пока исправил 2-е ошибки, с поставщиком проводок и с деревом при выборе групп.
Скоро закончу и выложу полностью официальную версию

+ обновил публикацию на инфостарте. уфффф....
  

1Cv7_ext_TF_007.rar ( 990 KB | Загрузки )

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


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #582 - 18. Января 2012 :: 00:22
Печать  
vandalsvq писал(а) 17. Января 2012 :: 08:44:
Dolly_EV, смотри в сторону класса "Библиотека картинок". Теперь он заведует всей этой частью (библиотека может быть создана самостоятельно, а может быть получена из созданного поставщика данных).

Чтобы оптимизировать делаем так:
в Глобальном:
Код
Выбрать все
Перем глПД_БиблиотекаКартинок Экспорт;
...
глПД_БиблиотекаКартинок=СоздатьОбъект("ПоставщикДанных.БиблиотекаКартинок"); 



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


Я правильно понял?

Доку еще тогда надо подправить, "перекочевать" атрибуты "КартинкаТабличногоПоля, КартинкаКоманднойПанели" из "Сервис" в "БиблиотекаКартинок"
« Последняя редакция: 18. Января 2012 :: 02:48 - Dolly_EV »  
Наверх
ICQ  
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #583 - 18. Января 2012 :: 06:49
Печать  
Проблема с 2 ТП !
в 1 ТП клиенты во 2 ТП карты.
Сделал отбор по активному элементу ТП 1 в ТП 2
Начинаю поиск по фамилии клиента, Строка поиска набирается в ТП 2.
Как переназначить поиск на ТП 1?
Как перевести фокус на ТП 1 без отработки события при активизации строки.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

mozer, нужен тест... можно например на стандартной бухе сделать я бы посмотрел если будет повторяться.
  

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


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #585 - 18. Января 2012 :: 08:37
Печать  
Хорошо, только на чем в бухии сделать?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #587 - 18. Января 2012 :: 11:49
Печать  
vandalsvq писал(а) 18. Января 2012 :: 10:37:
Ну посмотри может похожая организация данных есть или подчиненность, сделай на форме обработки эти два справочника и их обработку при активизации.... я так понимаю проблема потери фокуса, и скорее всего с данными это вообще связано Улыбка

Известная же глюкофича: какой поставщик обновился последний, тот и получил фокус
  
Наверх
wwwICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #589 - 19. Января 2012 :: 02:46
Печать  
vandalsvq писал(а) 18. Января 2012 :: 12:02:
ааа... наверное в классе после Обновить вызывается "активировать" Улыбка)))))
А почему бы активизацию самому не вызвать.

Работает. Спасибо сам не догадался. не отошел от праздников еще ))
Еще как изменить разрядность кода 4 знака маловато  Улыбка
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #590 - 20. Января 2012 :: 03:46
Печать  
Подскажете пожалуйста в какую сторону двигаться.
Перевожу все списки справочников документов и журналов в своей подсистеме на ТП. Получается даже, но возникла проблема ... несколькими постами выше я писал, что стандартную форму справочника невозможно вставить ТП начинаются обвалы. Тогда написал обработку которая запускается при открытии формы списка справочника, все работает отлично. Собственно вопрос, кто как пишет формы списков справочника с ТП и поставщиком данных? Для каждой формы своя обработка или используются другие методы? Вообще возможно реализовать схему типа обработка выводит только ИНТЕРФЕЙС, а ОБРАБОТКА СОБЫТИЙ от ТП реализуется в стандартном справочнике?  Улыбка Или я много хочу ? Если возможно пните в нужном направлении.
  
Наверх
 
IP записан
 
mirvel
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 55
Зарегистрирован: 28. Августа 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #591 - 20. Января 2012 :: 09:14
Печать  
вообщем серьезная проблема:
Не знаю почему...вообщем год стабильно работала (с поставщиком данных) и вдруг база полетела...
и при запуске выдала:
"Не определены параметры базы данных! Для определения следует воспользоваться Конфигуратором."
ну естественно зашел в конфигу, восставил словарь данных...
1 ска запустилась...
Но не работает класс поставщик данных, выдает ошибку:
ВидыСравнения = СоздатьОбъект("ПоставщикДанных.ВидыСравнения"); // для удобства работы с отборами
{Отчет.СправочникНоменклатура.Форма.Модуль(979)}: Неудачная попытка создания объекта (ПоставщикДанных.ВидыСравнения)
--------------------------------------------------------
Класс поставщик данных  используется в двух местах...
для номенклатуры...и для еще одного журнала. "подборпопрайсу"
----------------------------------------------------------------------------

Такая проблема уже возникала ранее я ее решил удалив строчку с ID=0  у базы "Контрагентов" (не знаю почему), через DBFViewer. Проблему с этой строчкой я обнаружил запустив Тестирование и Исправление базы...
После удаление этой строчки "ПОставщик данных" завелся..
т.е заработала Номенклатура и Журнал "ПодборПОпрайсу"

----------------------------------------------------------------------
щас проблема опять возникла...(не знаю почему)
опять 1ска дала ошибку:
Не определены параметры базы данных... и так далее
я 1ску восстановил....
но класс опять не работает
Перепробывал удалять индексы и выгрузка-загрузка, и ТИ
все напросно Поставщик данных не ожил...
выдает:
ВидыСравнения = СоздатьОбъект("ПоставщикДанных.ВидыСравнения"); // для удобства работы с отборами
{Отчет.СправочникНоменклатура.Форма.Модуль(979)}: Неудачная попытка создания объекта (ПоставщикДанных.ВидыСравнения)...
---------------------------------------------
--------------------------------------------
я плохо знаю как работает класс поставщик данных, но учитывая что он напрямую обращается к таблицам dbf, предполагаю, что зависемые таблицы имееют ошибки...
------------------------------------------------
опишу заранее что у меня номенклатура постоянно растет.. сейчас она имеет 23000 записей...она также имеет подчиненный справочник, который тоже имеет 30000 записей....этого не много....
НО ПРОБЛЕМА МОЖЕТ БЫТЬ В ТОМ, ЧТО НОМЕНКЛАТУРА ПОСТОЯННО И ЕЕ ПОДЧИНЕННЫЙ СПРАВОЧНИК ПОСТОЯННО УДАЛЯЮТСЯ "ЖЕСТКИМ СПОСОБОМ"....т.е. кодом, и на них остаются ссылки из доков...
может быть дело в этом???
« Последняя редакция: 20. Января 2012 :: 12:12 - mirvel »  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


1C++ rocks!

Сообщений: 47
Зарегистрирован: 01. Апреля 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #593 - 21. Января 2012 :: 10:20
Печать  
Прошу внести изменение в ПоставщикДанных.ИндексированнаяТаблица.ert,
если это возможно и не противоречит его идеи.

При текущем тексте процедуры не происходит формирование колонок
на основании таблицы значений с нулевым количеством строк.

Процедура ЗаполнитьИзОбъекта(Объект = "",Параметр = "") Экспорт

Заменить текст процедуры:

     Если ПустоеЗначение(Объект) = 1 Тогда
           Возврат;
     КонецЕсли;
     
     Если Врег(ТипЗначенияСтр(Объект)) = Врег("ПрямойЗапрос") Тогда
           ЗаполнитьИзОбъектаПрямойЗапрос(Объект);
     ИначеЕсли Врег(ТипЗначенияСтр(Объект)) = Врег("Запрос") Тогда
           ЗаполнитьИзОбъектаЗапрос(Объект);
     ИначеЕсли Врег(ТипЗначенияСтр(Объект)) = Врег("ТаблицаЗначений") Тогда
           ЗаполнитьИзОбъектаТаблицаЗначений(Объект);
     КонецЕсли;
     
На текст:      

     ТипСтрВрег = Врег(ТипЗначенияСтр(Объект));

     Если ПустоеЗначение(ТипСтрВрег) = 1 Тогда
           Возврат;
     КонецЕсли;

     Если ТипСтрВрег = Врег("ПрямойЗапрос") Тогда
           Если ПустоеЗначение(Объект) = 0 Тогда
                 ЗаполнитьИзОбъектаПрямойЗапрос(Объект);
           КонецЕсли;
     ИначеЕсли ТипСтрВрег = Врег("Запрос") Тогда
           Если ПустоеЗначение(Объект) = 0 Тогда
                 ЗаполнитьИзОбъектаЗапрос(Объект);
           КонецЕсли;
     ИначеЕсли ТипСтрВрег = Врег("ТаблицаЗначений") Тогда
           Если Объект.КоличествоКолонок()>0 Тогда
                 ЗаполнитьИзОбъектаТаблицаЗначений(Объект);
           КонецЕсли;
     КонецЕсли;
     
КонецПроцедуры      // ЗаполнитьИзОбъекта
  
Наверх
 
IP записан
 
mvgfirst
Full Member
***
Отсутствует


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

Сообщений: 152
Местоположение: Украина г. Кривой Рог
Зарегистрирован: 17. Августа 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #594 - 28. Января 2012 :: 19:02
Печать  
Существует ли возможность реализовать с помощью данного класса механиз аналогичный настройкам построителя отчетов в 8-ке.
С того момента как я перешел на обслуживание конфигураций 8-ки, без такого функционала уже жутко неудобно....
А ведь остались у меня на поддержке еще несколько конфигураций для которых требуется дописывать отчеты... и я уже устал писать настроки под каждый отчет...

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

Если кто реализовал подобное - буду признателен даже за возможность взглянуть издалека.

Оно то конечно со временем всех переведу на 8-ку... но когда это будет... а пока надо поддерживать и это...
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #595 - 28. Января 2012 :: 20:01
Печать  
mvgfirst, а чего "построитель" то? это же прошлый век, если замахиваться, так сразу на СКД Улыбка. Вообще то частично та или иная часть решения уже есть в виде отдельных разработок на данном ресурсе... но их бы объединить.

Я бы сделал так: написал бы классы для быстрой реализации настроек, чтобы вроде того было...

Код
Выбрать все
НастройкиОтчета = СоздатьОбъект("НастройкиОтчета");

// ПоляГруппировки = это отдельный класс для управления группировками
ПоляГруппировки = НастройкиОтчета.ПоляГруппировки;
ПоляГруппировки.Добавить("Родитель", "Элементы", 0, 1); // Имена, тип, использование, автодобавление
ПоляГруппировки.ТабличноеПоле = "ТабличноеПолеГруппировки";
ПоляГруппировки.КоманднаяПанель = "КоманднаяПанельГруппировки";

// Отборы = отдельный класс
Отборы = НастройкиОтчета.Отборы;
Отборы.Добавить("Поле1", "Справочник.Контрагенты", "Наименование", "Равно", "", 0); // Имя, Родитель, Поле, ВидСравнения, Значение, Использование
Отборы.Добавить("Поле2", "Справочник.Контрагенты", "ЭтоГруппа", "Равно", 0, 0);
Отборы.ТабличноеПоле = "ТабличноеПолеОтборы";
Отборы.КоманднаяПанель = "КоманднаяПанельОтборы"; // правда зачем она нужна? :)

НастройкаОтчета.ТекстЗапроса =
"ВЫБРАТЬ
|$Спр.ТекущийЭлемент КАК [Контрагент $Справочник.Контрагенты]
|,$Спр.Родитель КАК [Родитель $Справочник.Контрагенты]
|ИЗ
|Справочник.Контрагенты КАК Спр $nolock
|{ГДЕ (Поле1=$Спр.Наименование, Поле2=$Спр.ЭтоГруппа)}"; 



А далее, уже вызов считывания настройки, и собственно создание текста запроса, выполнение запроса, получение ИТЗ, ее группировка и вывод сгруппированной ИТЗ.
Потом (или сначала) можно было бы научить класс принимать не только запрос, но и ТЗ, ИТЗ чтобы сделать более универсальный механизм. Но сначала на простом отчете обкатать Улыбка.
В общем то не так сложно, думаю за выходные более менее рабочий функционал можно сделать Улыбка.

Но вы же понимаете, что это я так... предложение просто высказал. Как там принято говорить? Это не является публичной офертой.  Подмигивание
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #596 - 29. Января 2012 :: 02:11
Печать  
Версия 4.3.1 обновлена. Изменений не много, отображение у Дерева и новый метод у ОписаниеТипов.

В архив добавил небольшую обработку которая отображает дерево метаданных. Она конечно не совсем все показывает и не все до конца умеет разворачивать, но что умеет то умеет. В основном это набросок.
Так сказать размял мозг и руки. Было желание сделать возможность добавлять отборы с максимальной вложенностью. Но видимо не буду этого делать ибо не совсем понятно как потом разобрать строку
Код
Выбрать все
Справочник.Контрагенты.Родитель.Родитель.Родитель.Родитель 



Я понимаю что можно сделать все, но считаю что лучше не стоит делать лишнего  Подмигивание.

Добавление в отборах таки появится. Но когда не знаю.
  

1Cv7_ext_TF_010.rar ( 990 KB | Загрузки )

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


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #597 - 30. Января 2012 :: 19:25
Печать  
Или я что то не понимаю или конфа вываливает ошибки.
Вообще посмотреть не могу.

Хотел посмотреть реализацию формы выбора на ТП + Поставщик.
Реально?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #598 - 30. Января 2012 :: 23:49
Печать  
Не понял, у тебя на обновленной версии не работает? Или и до этого не работало... Улыбка и конкретно что не работает? Улыбка Ну какой код там. Или из примеров может что-то?
  

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


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #599 - 31. Января 2012 :: 05:55
Печать  
Я пытаюсь посмотреть тестовую базу, что в архиве.
Посмотреть как там и что, но не могу запустить.
Создал каталог - создал базу через конфигуратор - закинул в каталог базы классы - прописал файл описаний - захожу в базу - обработки - дерево значений.
и валятся ошибки. Сначала ругался на класс привязки, заменил файлом от 15 07 не помню какого года. дальше ругается на класс управление формой. Потом я не выдерживаю и бросаю это дело. Работы много.
« Последняя редакция: 31. Января 2012 :: 08:26 - mozer »  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #600 - 31. Января 2012 :: 06:02
Печать  
Вот тут вся сборка классов из моей конфы на которой ведется разработка. Оттуда не брать только поставщик данных, остальное все взять и положить (поставщик повторяю взять из этой темы)... и проблем не должно быть
  

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


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #601 - 31. Января 2012 :: 12:04
Печать  
vandalsvq писал(а) 31. Января 2012 :: 06:02:
Вот тут вся сборка классов из моей конфы на которой ведется разработка. Оттуда не брать только поставщик данных, остальное все взять и положить (поставщик повторяю взять из этой темы)... и проблем не должно быть

попотел, но получилось! Изучаю!
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #602 - 31. Января 2012 :: 17:20
Печать  
Что то не вижу того что мне интересно! Я уже спрашивал 2 раза спрошу 3 раз. Есть примеры реализации форм выбора и подбора справочника на ТП + ПоставщикДанных. Примеров в тестовой нет.
Интересно как обработать передачу выбранного значения в форму в котором собственно и вызывается выбор. Только через параметр ?? или есть более интересные решения  Круглые глаза
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #603 - 31. Января 2012 :: 20:01
Печать  
mozer писал(а) 31. Января 2012 :: 17:20:
...
Интересно как обработать передачу выбранного значения в форму в котором собственно и вызывается выбор. Только через параметр ?? или есть более интересные решения  Круглые глаза  

В форме документа
Код
Выбрать все
Процедура ПриНачалеВыбораЗначения(ид,ФСО)
   Если ид = "МойРеквизит" Тогда
      ФСО = 0;
      ОткрытьФорму("Обработка.МойСправочник_ПоставщикДанных");
   КонецЕсли;
КонецПроцедуры
 


В обработке
Код
Выбрать все
Процедура ПослеСозданияФормы()
...создание ТП...
   Если Форма.РежимВыбора() = 1 Тогда
      ТП.РежимВыбора = РежимВыбора;
   КонецЕсли;
КонецПроцедуры

Процедура ТП_ПриВыбореЗначения(ТабличноеПоле, _Строка,_Колонка);
   ТекЭл = _Строка;
   Форма.Параметр = ТекЭл;
   Если Форма.РежимВыбора() = 1 Тогда
      Форма.ВыполнитьВыбор(ТекЭл);
   КонецЕсли;
   Форма.Закрыть();
КонецПроцедуры

 


Если не ошибся с параметрами, то как-то так.Ну а для множественного выбора нужно немного переделать.
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #604 - 01. Февраля 2012 :: 03:36
Печать  
zk96 писал(а) 31. Января 2012 :: 20:01:
mozer писал(а) 31. Января 2012 :: 17:20:
...
Интересно как обработать передачу выбранного значения в форму в котором собственно и вызывается выбор. Только через параметр ?? или есть более интересные решения  Круглые глаза  

В форме документа
Код
Выбрать все
Процедура ПриНачалеВыбораЗначения(ид,ФСО)
   Если ид = "МойРеквизит" Тогда
      ФСО = 0;
      ОткрытьФорму("Обработка.МойСправочник_ПоставщикДанных");
   КонецЕсли;
КонецПроцедуры
 


В обработке
Код
Выбрать все
Процедура ПослеСозданияФормы()
...создание ТП...
   Если Форма.РежимВыбора() = 1 Тогда
      ТП.РежимВыбора = РежимВыбора;
   КонецЕсли;
КонецПроцедуры

Процедура ТП_ПриВыбореЗначения(ТабличноеПоле, _Строка,_Колонка);
   ТекЭл = _Строка;
   Форма.Параметр = ТекЭл;
   Если Форма.РежимВыбора() = 1 Тогда
      Форма.ВыполнитьВыбор(ТекЭл);
   КонецЕсли;
   Форма.Закрыть();
КонецПроцедуры

 


Если не ошибся с параметрами, то как-то так.Ну а для множественного выбора нужно немного переделать.

Спасибо, я вчера за ночь практически докопался до этого. Единственное что пока не понял. Можно ли управлять режимом выбора формы ?? Щас сижу копаюсь с этим
  
Наверх
 
IP записан
 
mirvel
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 55
Зарегистрирован: 28. Августа 2010
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #605 - 01. Февраля 2012 :: 04:07
Печать  
Вообщем я вышеописал проблему с ошибками которые вываливаются...разобрался в чем дело...оказывается у меня постоянно удаляется файл defls.prm...может как использовать подключение //#include SystemData\Classes\Defcls.prm
в конфиге? чтобы класс поставщик данных нормально подгружался
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #606 - 01. Февраля 2012 :: 05:19
Печать  
mozer писал(а) 01. Февраля 2012 :: 03:36:
Спасибо, я вчера за ночь практически докопался до этого. Единственное что пока не понял. Можно ли управлять режимом выбора формы ?? Щас сижу копаюсь с этим


В плане один или несколько элементов? Если да то можно.
  
Наверх
wwwICQ  
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #607 - 01. Февраля 2012 :: 05:37
Печать  
Anatol писал(а) 01. Февраля 2012 :: 05:19:
mozer писал(а) 01. Февраля 2012 :: 03:36:
Спасибо, я вчера за ночь практически докопался до этого. Единственное что пока не понял. Можно ли управлять режимом выбора формы ?? Щас сижу копаюсь с этим


В плане один или несколько элементов? Если да то можно.

Подскажи как у меня форма открывается только врежиме выбора одного элемента. Через подбор пробую и не получается.
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #608 - 01. Февраля 2012 :: 06:14
Печать  
Разобрался спасибо!
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #609 - 17. Февраля 2012 :: 09:22
Печать  
Как программно реализуется отбор для ПД.ИндексированнаяТаблица? Что-то примера не нашел и сам не втыкаю....
  

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


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #610 - 17. Февраля 2012 :: 10:39
Печать  
  
Наверх
wwwICQ  
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #611 - 22. Февраля 2012 :: 06:56
Печать  
Мне очень стыдно, но помогите уже мне начать с Вашими классами работать. Раз 10 брался - не успеет щелкнуть в башке, как другие задачи навалились.
Примитивные прямые запросы давно освоил, а дальше никак.
Ужо прокурируйте - дайте несколько волшебных пенделей.
Если согласны, с удовольствием открыл бы для это тему, чтобы с нуля с примерами по пунктам разобрать. Уверен, что многим начинающим такая тема помогла бы - копать многолетние залежи этого форума крайне непросто.
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #612 - 23. Февраля 2012 :: 13:17
Печать  
ANik писал(а) 22. Февраля 2012 :: 06:56:
копать многолетние залежи этого форума крайне непросто.

взял и обругал...
Ну давай, помогу чем могу. Хотя сам осваиваю лишь "попутно", в процессе нисходящего сопровождения продукта в конеченой ветке жизненного цикла Улыбка))
  
Наверх
ICQ  
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #613 - 24. Февраля 2012 :: 05:13
Печать  
Про залежи я не ругал - просто имел в виду объем форума.
Посоветуйте мне на данном этапе - как создать табличную часть формы документа. Расходная накладная (далее - РН) с нескольких складов => произвольное количество столбцов. В самой РН сводная колонка итого кол-во, столбцы/склады оформлены отдельными подчиненными локументами.
Табличное поле должно быть редактируемым. Каким объектом его отображать? Пробовал Йокселем - не понравилось. Других не знаю. Идеально бы было редактируемую таблицу значений.
Сорри за сумбур. В общем - Вы умнее - скажите что и как.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #614 - 24. Февраля 2012 :: 05:26
Печать  
Код
Выбрать все
ПоставщикДанных.ТипЗначений = "ИндексированнаяТаблица"; 

и как говорят у нас в Башкирии "алга"
  

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


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #615 - 24. Февраля 2012 :: 05:34
Печать  
vandalsvq писал(а) 24. Февраля 2012 :: 05:26:
Код
Выбрать все
ПоставщикДанных.ТипЗначений = "ИндексированнаяТаблица"; 

и как говорят у нас в Башкирии "алга"

Это мне сообщение? Если да, то я правильно понимаю, что изменения при редактировании автоматически переносятся в ИТ и при записи док-та я могу брать данные из ИТ?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #616 - 24. Февраля 2012 :: 08:37
Печать  
Абсолютно верно.
  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #617 - 27. Февраля 2012 :: 10:31
Печать  
Почему-то при использовании поставщика данных в обработке (во вложении),  падает 1с. Причем не сразу, а если несколько раз полистать закладки.
  

_________.7z ( 20 KB | Загрузки )

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


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #618 - 28. Февраля 2012 :: 02:22
Печать  
Существует .als для Поставщика? что-то не нашел
  
Наверх
 
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #619 - 28. Февраля 2012 :: 04:18
Печать  
Еще раз попрошу совета. Цель - создание формы расходной накладной с отгрузкой с нескольких складов одновременно.
Сводная табличная часть (товар,цена,кол-во,сумма) хранится в расходной накладной, плюс подчиненные документы по каждому складу (товар,кол-во).
В форме имеем товар, цена, количество, сумма + доп.колонки - кол-во по каждому складу.
Можно ли сделать так:
ПоставщикДанных.ТипЗначений = "ТабличнаяЧасть.РасходнаяНакладная";
Затем добавить и заполнить колонки по складам.
Отредактировать эти колонки, при записи извлечь из них значения и перезаполнить документы.
Или все-таки только ИТ?
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #620 - 28. Февраля 2012 :: 09:23
Печать  
Код
Выбрать все
ПоставщикДанных.ТабличноеПоле::ПриБыстромПоиске(Число ТипПоиска=1, Строка Данные=22, Число ФСО=0) : ПоставщикДанных.Журнал::БыстрыйПоискПоПодстроке(Строка ИмяКолонки=СкладПолучатель, Строка Значение=22, Строка ТекущиеДанные=) : Слишком много параметров передано при вызове функции/процедуры объекта
Если ТабличноеПоле.Колонки.Индекс(ИмяКолонки,0) = -1 Тогда
{H:\db\SystemData\Classes\ПоставщикДанных\ПоставщикДанных.Журнал.ert(1719) }

вирт().ПриБыстромПоиске(ТипПоиска,Данные,ФСО);
 } 


Версия = "4.1.4 20.05.2011"
  

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


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #621 - 29. Февраля 2012 :: 09:36
Печать  
Интересно, а с чем может быть связано то, что при вызове Отбора по правой кнопке из меню "Установить отбор" в окошке отбора иногда не инициализировалось ТП и показывалась кнопка вместо ТП. Никакой зависимости пока не обнаружил, т.к. несколько раз вызываю этот пункт - всё ок. А потом раз - и нет ТП. Это первое. (Хотя вот сегодня запускаю - пока всё нормально.)

Второе - для журналов документов обязательно присутствие КонтейнерКоманднойПанели?
Я его, конечно, временно в классе заблокировал (в методе УстановитьНаборПиктограмм класса ПоставщикДанных.КоманднаяПанель поставил Возврат). Просто пока не установлен объект MSComctlLib невозможно попробовать класс.

И третье - в меню по правой кнопке (на ТП) картинки должны быть или нет? У меня их нет.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #622 - 29. Февраля 2012 :: 10:15
Печать  
Еще такой нюанс.

Включен "Иерархический просмотр"

1. В списке справочника позиционируюсь на каком-то Элемент1 в какой-то группе.
2. Затем отключаю в меню "Иерархический просмотр". В ТП активная строка установлена на Элемент1.
3. Теперь, позиционируюсь на каком-то Элемент2
4. Включаю "Иерархический просмотр"

РЕЗУЛЬТАТ: активным будет Элемент1, а не Элемент2.

На мой взгляд это неверное поведение. Можно сравнить с поведением Иерархического списка в стандартной форме справочника.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #623 - 29. Февраля 2012 :: 20:45
Печать  
Еще один вопрос - а с чем связано ограничение класса ПоставщикДанных.Журнал, что он не может работать с Общими журналами - это какое-то принципиальное (техническое) ограничение?
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #624 - 01. Марта 2012 :: 09:01
Печать  
1. По поводу отбора честно признаться не встречал.
2. Вообще командная панель не обязательна нигде... но библиотеки надо. Можно допилить чтобы без них работало... как время будет
3. Картинок в контекстном меню не предусмотрено
4. Позиционирование посмотрю, но не обещаю что скоро
5. Ограничение только в том что общий журнал - это полный ад и прошкен Улыбка))) шутка. Просто надо сделать считывание метаданных и перепилить класс, что для меня никак не возможно в ближайшее время
  

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


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #625 - 01. Марта 2012 :: 10:40
Печать  
1. По поводу отбора - я сначала установил класс версии 4.1.1, сейчас обновил до 4.3.1 - попробую с ним.
2. С командной панелью у меню возникла непонятка из-за того, что в документации сказано, что она не обязательна, но создание объекта происходило (т.е. таки да - нужна была библиотека). Вот и подумал - или лыжи не едут... или что-то тут не так... Улыбка. Сейчас уже подключил библиотеку. Всё ок. Так что это по твоему желанию будет - убрать зависимость от библиотеки, если не используется панель (т.е. не создавать объекты без надобности).
3. А чего? Вроде есть такая возможность http://www.1cpp.ru/forum/YaBB.pl?num=1234422686
4.....
5 Может направление дашь, где ковырять? Посмотрю сам...

6. Еще один новый вопрос - не работает быстрый поиск по коду, если он текстовый.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #626 - 01. Марта 2012 :: 13:35
Печать  
3. С пиктограммами я разобрался. Код не оптимальный, это просто пример, куда смотреть

В классе ПоставщикДанных.Сервис изменяем строку в функции ВыбратьЗначение на

Код
Выбрать все
КонтекстногоМеню,Параметры);
 



Предварительно объявляем переменную в этом классе

Код
Выбрать все
КартинкаДляКонтекстногоМеню = СоздатьОбъект("Картинка");
КартинкаДляКонтекстногоМеню.Загрузить(КаталогИБ()+"МояКартинка.bmp");
 



в картинке МояКартинка.bmp делаем набор пиктограмм для справочников, документов и 2 пиктограммы для флажка (отмечен/не отмечен)

Затем, например, в классе ПоставщикДанных.Справочник в процедуре ПриКонтекстномМеню() делаем такую замену для строк меню:

Код
Выбрать все
КонтекстноеМеню.ДобавитьЗначение(1,"[icon:1]Добавить");
...
КонтекстноеМеню.ДобавитьЗначение(201,"[icon:"+(20+СпособРедактирования)+"]Редактировать в диалоге"); //Здесь 20-ая иконка с пустым флажком 



То же самое делаем для Журналов документов

  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #627 - 01. Марта 2012 :: 15:08
Печать  
Разобрался с быстрым поиском по текстовому Коду для справочников:

Нужно заменить в функции БыстрыйПоискПоПодстроке() класса ПоставщикДанных.Справочник для условия:
Код
Выбрать все
	Если Врег(ИмяКолонки) = "КОД" Тогда
 


на нижеследующий код:
Код
Выбрать все
		Если МетаСправочник.ТипКода="Числовой" Тогда
			ТекстЗапросаПоиска = ТекстЗапросаПоиска + "
			|"+КлючевоеСлово+" ТекущийОбъект.code = '"+Формат(Значение,"Ч"+МетаСправочник.ДлинаКода+" ")+"'
			|";
		Иначе
			ТекстЗапросаПоиска = ТекстЗапросаПоиска + "
			|"+КлючевоеСлово+" substr"+?(ЭтоSQL = 1,"ing","")+"(ТекущийОбъект.code,1,"+СтрДлина(СокрЛП(Значение))+") "+?(ЭтоSQL = 0,"collate _1C ","")+"= '"+Нрег(СокрЛП(Значение))+"'
			|";
		КонецЕсли;
 



Здесь использую СокрЛП(Значение) потому как ранее вызывалась функция ПодготовитьЗначениеПоиска() и в ней текстовое Значение форматируется в полную строку с длиной кода, т.е. ввели "8" - получили "8    ". А оно нам не надо...
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #628 - 01. Марта 2012 :: 15:22
Печать  
Окно Отбора пока глючит. Даже на новой версии. Иногда показывает кнопку вместо ТП.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #629 - 01. Марта 2012 :: 15:55
Печать  
Еще один вопрос в догонку по теме Быстрого поиска.

Если сравнивать поиск со стандартным, то стандартный просто летает. Набираю первый символ - и система тут же позиционируется, следующий - тут же позиционируется. А при быстром поиске в ТП - есть какая-то задержка: набираю  символ - ожидание - позиционирование.  Т.е. поиск не сразу. Причем можно сразу несколько символов набрать. Мне кажется, что ТП после набора одного символа ждет какое-то время, не будет ли набран следующий символ. Если за время этой задержки успели набрать следующий символ, то поиск пока не срабатывает. Как только время ожидания закончилось - срабатывает процедура ПриБыстромПоиске().

Где-то какая-то задержка стоит у ТП?
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #630 - 01. Марта 2012 :: 19:05
Печать  
Да ТП ждет пока ты не наберешь какой-то символ далее. В принципе логично. Потому как штатный лично мне никак не нравится. Набрал ошибку, а он ищет. Ну нахрена спрашивается? Ресурсы лишние и сервер рад новому запросу? Улыбка)))) В общем мне нравится, достаточно привыкнуть.

Картинки делать не очень хочется, их там иначе много надо вставить + прозрачность проверить... пунктов меню то типовых немало. В общем не скоро. Или вообще никогда Печаль

Все остальное как руки дойдут (ошибки и неточности).
К сожалению исходя из количества необходимого кода по моим текущим работам на 8.2 я предполагаю что меня можно дождаться где-то к.... не знаю Улыбка
  

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


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #631 - 01. Марта 2012 :: 19:13
Печать  
alyuev писал(а) 01. Марта 2012 :: 15:55:
...
Где-то какая-то задержка стоит у ТП?

У ТП есть свойство  -  ТаймаутОбновления
Установи его например в 100 миллисекунд.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #632 - 01. Марта 2012 :: 21:13
Печать  
zk96 писал(а) 01. Марта 2012 :: 19:13:
alyuev писал(а) 01. Марта 2012 :: 15:55:
...
Где-то какая-то задержка стоит у ТП?

У ТП есть свойство  -  ТаймаутОбновления
Установи его например в 100 миллисекунд.

Правильнее смотреть на "ТаймаутБыстрогоПоиска" http://www.1cpp.ru/docum/icpp/html/TableField.html#quicksearchtimeout
  
Наверх
ICQ  
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #633 - 01. Марта 2012 :: 21:28
Печать  
"ТаймаутБыстрогоПоиска" - О! Вот это, наверное, то, что я искал! Завтра буду пробовать...
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #634 - 02. Марта 2012 :: 05:28
Печать  
Подскажите пожалуйста как правильно реализовать:
ТП для журнала документов
необходимо отключить АвтоКонтекстноеМеню
(тут вроде понятно ПоставщикДанных.Данные.АвтоКонтекстноеМеню = 0)
А вот дальше нужно через свой список добавить возможность установки периода, фильтров.
делаю
Код
Выбрать все
Сервис = СоздатьОбъект("ПоставщикДанных.Сервис");
Рез = Сервис.ВыбратьЗначение(СзМеню);
Если Рез = 1 Тогда
    Сервис.ВыполнитьНастройкуОтбора();
КонецЕсли; 


И получаю ошибку:
Количество = Отбор.Количество()-1;
9)}: Значение не представляет агрегатный объект (Количество)

Версия класса: Версия = "4.1.4 20.05.2011";

То есть вопрос - как правильно использовать ПоставщикДанных.Сервис и можно ли самому добавлять пункты в АвтоКонтекстноеМеню
  
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #635 - 02. Марта 2012 :: 05:52
Печать  
Отвечу сам себе -
Цитата:
ПриФормированииКонтекстногоМеню

Вот этим событием попробую пользоваться.
  
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #636 - 02. Марта 2012 :: 09:24
Печать  
Да. ТаймаутБыстрогоПоиска - это то, что нужно! Спасибо!

А вот с Отбором - пока странности. Не отрабатывает функция ПослеСозданияФормы() в классе ПоставщикДанных.НастройкаОтбора. Точнее не всегда отрабатывает. Вот и не инициализируется ТП. С чего бы это? Formex разный пробовал - сначала 93, потом 104 - без разницы.

Сейчас, пока делал вызов Сообщить во всех методах, чтобы отследить последовательность вызовов - вообще перестала вызываться ПослеСозданияФормы().
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #637 - 02. Марта 2012 :: 10:46
Печать  
Подозреваю что просто неправильно написано имя функции
  
Наверх
wwwICQ  
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #638 - 02. Марта 2012 :: 11:24
Печать  
Это как? Улыбка Она ж, то работает, то нет... Какой-то плавающий глюк...
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #639 - 02. Марта 2012 :: 11:58
Печать  
Похоже, что фигня с Отбором из-за модального вызова окна класса НастройкаОтбора. Вызов идет из класса ПоставщикДанных.Сервис в функции ОткрытьФормуНастройки(). Я там попробовал открыть через ОткрытьФорму() - всё ок. Но, конечно, алгоритм ломается. А ТП отрисовывается нормально.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #640 - 02. Марта 2012 :: 11:59
Печать  
Т.е. в модальном окне, по всей видимости, какие-то непонятки с вызовом ПослеСозданияФормы() и пр. аналогичных функций.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #641 - 02. Марта 2012 :: 12:17
Печать  
Ха.... еще одну зависимость отловил. Если Отбор вызывать по кнопке из КоманднойПанели - всё ок! А из контекстного меню - глюк.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #642 - 02. Марта 2012 :: 12:58
Печать  
А как происходит обработка события нажатия кнопки КоманднойПанели?

Вызывается  ПоставщикДанных.КоманднаяПанель ButtonClick() при этом в переменная ИмяПроцедуры = КоманднаяПанельПриНажатии. А такой процедуры не нашел. Зато потом отрабатывает ПоставщикДанных.Справочник ПриВыбореКоманды(). И если я правильно понимаю, она срабатывает из-за того, что прописана в свойствах кнопки      
Код
Выбрать все
Кнопка = СвойствоКоманднаяПанель.Кнопка("НастроитьОтбор",,,16,"ПриВыбореКоманды",я()); 



Я правильно рассуждаю:  ПриВыбореКоманды вызывается непосредственно из кнопки, а не из ButtonClick()?


  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
newbas
Junior Member
**
Отсутствует



Сообщений: 32
Местоположение: Краснодар
Зарегистрирован: 29. Августа 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #643 - 02. Марта 2012 :: 15:41
Печать  
Пытаюсь разобраться и использовать класс для журнала документов. Вот код:
Код
Выбрать все
	ПоставщикДанных 							= СоздатьОбъект("ПоставщикДанных");
	ПоставщикДанных.ТипЗначений 				= "Журнал.РегистрацияДокументов";
	ПоставщикДанных.КонтейнерТабличногоПоля 	= "ТабличноеПолеМногострочнойЧасти";
	ПоставщикДанных.КонтейнерКоманднойПанели 	= "КоманднаяПанельМногострочнойЧасти";


	ТабличноеПоле 					= ПоставщикДанных.ТабличноеПоле;
	ТабличноеПоле.СтильРамки 		= 1;
	ТабличноеПоле.СтильЗаголовков 	= 1;

	Данные 							= ПоставщикДанных.Данные;
	Данные.СоздатьКнопкиПоУмолчанию();
	Данные.РеквизитСортировки 		= "ВидДокумента";
	Данные.КолонкаПиктограмм 		= "НомерДокумента";
	Данные.РежимВыбора 				= 0;
	Данные.РежимОтладки 			= -1;
	Данные.АвтоОбновление 			= 1;
	Данные.ПериодАвтоОбновления 	= 10;
	Данные.РазрешитьОтборПоГрафам 	= 1;


	//Данные.ДобавитьКолонкуДанных("НачалоГода","Начало года","НачалоПериода($ТекущийОбъект.ДатаДокумента,ГОД)","Дата",,,1);

	Данные.НоваяКолонка("ДатаДокумента");
	//Данные.НоваяКолонка("НачалоГода");
	Данные.НоваяКолонка("НомерДокумента");
	Данные.НоваяКолонка("ВремяДокумента");
	Данные.НоваяКолонка("Контрагент");
	Данные.НоваяКолонка("Фирма");
	Данные.НоваяКолонка("Комментарий");


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

	ПолеНастройки 				= ка.100");
	ПолеНастройки.Родитель 		= "Журнал.РегистрацияДокументов";
	ПолеНастройки.ПутьКДанным 	= "Контрагент.Наименование";
	ПолеНастройки.Отбор 		= 1;

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

	ЭлементОтбора 				= Отбор.Добавить("НаименованиеКонтрагента");

	ТабличноеПоле.СтандартныйБыстрыйПоиск = 1;
	ТабличноеПоле.ПозиционныйБыстрыйПоиск = 0;

	ТабличноеПоле.ВосстановитьПозициюКолонок();
	ПоставщикДанных.Обновить();
 


Обработка открывается - все отображается, фильтры работают. Однако при попытке изменить период ТП становится пустым и на нем в хинте висит ошибка (см. скриншот).
База у меня SQL - судя по ошибке зачем-то накладнывается дважды поле позиции документа date_time_iddoc
  

___________001.JPG ( 91 KB | Загрузки )
___________001.JPG
Наверх
 
IP записан
 
mvgfirst
Full Member
***
Отсутствует


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

Сообщений: 152
Местоположение: Украина г. Кривой Рог
Зарегистрирован: 17. Августа 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #644 - 03. Марта 2012 :: 04:12
Печать  
Создал форму отчета.
На нее положил ПоставщикДанных - тип значения "Справочник.Номенклатура".
Чуть ниже положил еще один ПоставщикДанных - тип значения "Справочник.КодыПоставщика" (Справочник подчинен справочнику Номенклатура).
В событие "ПриАктивизацииСтроки" - переопределяю владельца у подчиненного Поставщика, таким образом:
Код
Выбрать все
	Данные = ПоставщикКодовПоставщиков.Данные;
	Данные.Владелец = ПоставщикНоменклатуры.ТабличноеПоле.ТекущаяСтрока;

	ПоставщикКодовПоставщиков.Обновить();
	Активизировать("тпНоменклатура");
 


Запустил обработку - стал на первую строку справочника и не отпускаю кнопку пока не "добегу" до конца справочника. Все быстро бегает, причем в подчиненном ТП быстро мелькают подчиненные элементы. Для каждой строки Номенклатуры. И курсов в тпНоменклатура виден на каждой строке...

Добавляю еще один ПоставщикДанных - тип значения "Справочник.Замены" (тоже подчинен справочнику Номенклатура)
В процедуру ПриАктивизации добавляю еще код аналогичный вышенаписанному.

Опять же, запускаю обработку. становлюсь в начало справочника... и бегу в низ.. на этот раз все не так. Поведение отличается... теперь курсор при нажатии на "стрелку" исчезает и появляется только после того как клавишу отпущу... при этмо появляется в том месте где и должен быть после пробежки. При этом я не вижу обновления подчиненных Поставщиков.. не вижу как курсов "бежит" по основному справочнику.

Вот теперь вопрос: Это баг? Это фича? Это задумка разработчика - дабы экономить трафик на большом количестве запросов? Почему это работает с одним дочерним поставщиком и почему уже перестает работать на двух.. кто определяет "перегруженность по объему запросов"?

З.Ы. ПРобовал отключать по отдельности каждый из подчиненных Поставщиков - все начинает быстро бегать как в первом описаном случае.... при возврате всех поставщиков в дело, или же при добавлении новых подчиненных Постащиков - поведение идет по второму типу.

З.Ы.Ы. Почему бы не сделать для таких случаем специальный атрибут у Поставщика справочников - например "ПоставщикВладелец" указывая который поставщик авоматически будет менять свой состав в зависимости от смены строки в Поставщике владельце.
Такую вот Master-Detail связь я делал еще в 3-м Delphi... все работало без извратов и тормозов...

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


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

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

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

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


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #646 - 05. Марта 2012 :: 03:46
Печать  
Написал формы списков справочника для выбора элементов и обычный список элементов. При открытии и работе обработки ведут себя как полагается без глюков, но стоит оператору попытаться открыть эту же форму 1С ПАДАЕТ. Как побороть проблему?
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #647 - 06. Марта 2012 :: 08:59
Печать  
2 vandalsvq, а для неопределенных реквизитов табличной части решение планируется?
  
Наверх
wwwICQ  
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #648 - 06. Марта 2012 :: 09:23
Печать  
Раньше пользовался ПоставщикомДанных v4.

Сейчас снова возникла необходимость сделать простой список справочника с отбором по реквизиту "СпецПредложениеТов". Скачал последнюю версию v8 ПоставщикаДанных, делаю как раньше в процедуре инициализации ТП
       Данные = ПоставщикДанных.Данные;

       Отбор =  Данные.Отбор.СпецПредложениеТов;
       Отбор.Использование = 1;
       Отбор.ВидСравнения = ВидыСравнения.Равно;
       Отбор.Значение = СпецПредложение;

но отбор не срабатывает (вернее возвращает пустую таблицу).
Реквизит СпецПредложение - не пустой и данные для отбора есть.

Возможно, что-то поменяли в синтаксисе отбора в последней версии. В документации не нашел.

Как правильно ?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #649 - 11. Марта 2012 :: 18:23
Печать  
Версии 8 поставщика данных не существует Улыбка
Последняя неофициальная 4.3.1
« Последняя редакция: 11. Марта 2012 :: 19:34 - vandalsvq »  

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


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

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

4.3.1 от 12.03.12 г.
- Для объекта-расширения «ПоставщикДанных.Справочник» реализована возможность более оптимальной смены значения атрибута «Владелец» и обновления данных в табличном поле. При изменении владельца необходимо вызывать метод «ОбновитьСтроки».
- Доработана документация. Исправлены найденные ошибки, добавлены ранее недокументированные возможности.
- Унифицирован механизм редактирования значений. Список поддерживаемых типов при редактировании см. в подразделе «Допустимые типы» объекта «ПоставщикДанных.ОписаниеТипов». Добавлен новый метод «Получить».
- Новый атрибут «АвтосохранениеНастроекКолонок» и «ИнтерактивнаяСортировка» для элемента управления «ПоставщикДанных.ТабличноеПоле».
- Добавлено новое событие «ПриФормированииКонтекстногоМеню» для объекта «ПоставщикДанных.ТабличноеПоле»
- Добавлен новый объект «ПоставщикДанных.БиблиотекаКартинок»
- Добавлен новый атрибут «БиблиотекаКартинок» у объекта «ПоставщикДанных»
- Изменена форма выбора группы справочника на объект «ПоставщикДанных.ДеревоЗначений» с использованием параметризированного запроса
- Добавлены дополнительные варианты значений для реквизита «Отображение» объекта «ПоставщикДанных.ДеревоЗначений».
- Для объекта-расширения «ПоставщикДанных.Отбор» изменено представление значений (реализовано представление для списка значений)
- Форма настройки при открытии старается установить текущую строку согласно колонке табличного поля для которого вызвана настройка. Кнопка «ОК» сделана «по умолчанию» для формы.
- Исправлены выявленные ошибки.

Полный список изменений - тут
Архив как всегда в главной теме
  

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


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #651 - 12. Марта 2012 :: 04:33
Печать  
mozer писал(а) 05. Марта 2012 :: 03:46:
Написал формы списков справочника для выбора элементов и обычный список элементов. При открытии и работе обработки ведут себя как полагается без глюков, но стоит оператору попытаться открыть эту же форму 1С ПАДАЕТ. Как побороть проблему?

Кто знает? подскажите!
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #652 - 12. Марта 2012 :: 05:55
Печать  
mozer писал(а) 12. Марта 2012 :: 04:33:
mozer писал(а) 05. Марта 2012 :: 03:46:
Написал формы списков справочника для выбора элементов и обычный список элементов. При открытии и работе обработки ведут себя как полагается без глюков, но стоит оператору попытаться открыть эту же форму 1С ПАДАЕТ. Как побороть проблему?

Кто знает? подскажите!


несовсем понятно, открываются две формы вместе или если открытую форму открыть второй раз или ...
  
Наверх
wwwICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #653 - 12. Марта 2012 :: 06:10
Печать  
Anatol писал(а) 06. Марта 2012 :: 08:59:
2 vandalsvq, а для неопределенных реквизитов табличной части решение планируется?


2 vandalsvq, не мог бы добавить в ПоставщикДанных.ТабличнаяЧасть

вместо

Код
Выбрать все
	ТипВид = ВложеннаяСтруктура.ТипВид;
	Длина = ВложеннаяСтруктура.Длина;
	Точность = ВложеннаяСтруктура.Точность;
	Значение = Таблица.ПолучитьЗначение(,Идентификатор);
	Если ПустоеЗначение(Значение) = 1 Тогда
		Значение = ПолучитьПустоеЗначение(ТипВид);
	КонецЕсли; 



следующее:

Код
Выбрать все
	ТипВид = ВложеннаяСтруктура.ТипВид;
	Длина = ВложеннаяСтруктура.Длина;
	Точность = ВложеннаяСтруктура.Точность;
	Значение = Таблица.ПолучитьЗначение(,Идентификатор);
	Если ПустоеЗначение(Значение) = 1 Тогда
		Если (ТипЗначения(Значение) = 11) или (ТипЗначения(Значение) = 12) Тогда
			ТипВид = ТипЗначенияСтр((Значение)) + "." + Значение.Вид();
		КонецЕсли;
		Значение = ПолучитьПустоеЗначение(ТипВид);
	КонецЕсли; 




хотелось бы чтобы типизация не пропадала у неопределенных типов
  
Наверх
wwwICQ  
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" -обсуждения. Часть 2.
Ответ #654 - 12. Марта 2012 :: 06:52
Печать  
Anatol писал(а) 12. Марта 2012 :: 05:55:
mozer писал(а) 12. Марта 2012 :: 04:33:
mozer писал(а) 05. Марта 2012 :: 03:46:
Написал формы списков справочника для выбора элементов и обычный список элементов. При открытии и работе обработки ведут себя как полагается без глюков, но стоит оператору попытаться открыть эту же форму 1С ПАДАЕТ. Как побороть проблему?

Кто знает? подскажите!


несовсем понятно, открываются две формы вместе или если открытую форму открыть второй раз или ...

Форма открыта! Если ее открыть второй раз все падает. Если открыты две разные формы все работает.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #655 - 12. Марта 2012 :: 08:06
Печать  
скорей всего происходит инициализация поставщика второй раз, обрабатывай ПриПовторномОткрытии()
  
Наверх
wwwICQ  
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #656 - 13. Марта 2012 :: 05:31
Печать  
Anatol писал(а) 12. Марта 2012 :: 08:06:
скорей всего происходит инициализация поставщика второй раз, обрабатывай ПриПовторномОткрытии()

Дело не в этом! Выяснялось, что во всем виновата библиотека decoder.dll из поставки КЗК. Как это обойти ума не приложу.

Проблема наблюдается только с обработками на поставщике данных. Есть у кого нибудь мысли.
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #657 - 13. Марта 2012 :: 06:37
Печать  
mozer писал(а) 13. Марта 2012 :: 05:31:
Anatol писал(а) 12. Марта 2012 :: 08:06:
скорей всего происходит инициализация поставщика второй раз, обрабатывай ПриПовторномОткрытии()

Дело не в этом! Выяснялось, что во всем виновата библиотека decoder.dll из поставки КЗК. Как это обойти ума не приложу.

Проблема наблюдается только с обработками на поставщике данных. Есть у кого нибудь мысли.


Во всем виноват вот этот блок

Код
Выбрать все
УправлениеФормой = СоздатьОбъект("УправлениеФормой");
Привязка = УправлениеФормой.ПривязкаЭлементов;
Привязка.УстановитьГраницыПоФорме("КоманднаяПанельМногострочнойЧасти",1,1,1,0);
Привязка.УстановитьГраницыПоФорме("ТабличноеПолеМногострочнойЧасти",1,1,1,1);
Привязка.Привязать();
 



то есть класс управление формой все портит!
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #658 - 13. Марта 2012 :: 09:54
Печать  
Добрый день!
На последней версии класса при использовании ПоставщикДанных.Документы (база DBF)
не включается окончание периода
уходит вот такой текст запроса:
Код
Выбрать все
and
	journ.idx_DATE_TIME_IDDOC between '20120312'
	and '20120312')
 

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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #659 - 13. Марта 2012 :: 11:15
Печать  
И вк поди 26 ?
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #660 - 13. Марта 2012 :: 13:00
Печать  
Eprst писал(а) 13. Марта 2012 :: 11:15:
И вк поди 26 ?

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


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

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

Чтобы не было вдруг сюрпризом, для значения типа "Дата" теперь интервал устанавливается с ДатаНачала По ДатаОкончания + 1, но поскольку для отбора используется поле Date_time_iddoc то будет как раз между ДатаНачала и ДатаОкончания включая эту дату.
По крайней мере попробуйте скажите что да как
  

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



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #662 - 14. Марта 2012 :: 06:39
Печать  
leshik писал(а) 13. Марта 2012 :: 13:00:
Eprst писал(а) 13. Марта 2012 :: 11:15:
И вк поди 26 ?

Ага все именно так.
А что может влиять?


Ну как бы заметил тоже самое именно на этой ВК, на 23, к примеру, простые запросы отрабатывали медленнее, но правильно, на 26 - такой же косяк с конечнойй датой в битвине..

ЗЫ: надо Орефкова пытать Улыбка
  
Наверх
 
IP записан
 
DmitriyOvchinnikov
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 48
Местоположение: Екатеринбург
Зарегистрирован: 05. Марта 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #663 - 15. Марта 2012 :: 11:46
Печать  
Имеется справочник "Контрагенты", у него есть починенный справочник "Договоры". У справочника "Договоры" есть реквизит "Подразделение".
Вопрос: как мне в списке контрагентов добавить колонку с "Договор.Подразделение.Наименование"?
И сразу установить фильтр.
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #664 - 19. Марта 2012 :: 11:47
Печать  
Скажите как решить проблему.
меняем стандартную форму справочника на форму с поставщиком данных. Если писать поставщик в форме справочника, то при закрытии формы 1С ПАДАЕТ. Если писать в отдельной обработке, то все работает. Но хочется писать в форме. Кто то знает?
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #665 - 19. Марта 2012 :: 13:05
Печать  
И зачем хочется?
  
Наверх
IP записан
 
DmitriyOvchinnikov
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 48
Местоположение: Екатеринбург
Зарегистрирован: 05. Марта 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #666 - 20. Марта 2012 :: 04:41
Печать  
[code]Процедура ДанныеПриПолученииЗапроса(ТабличноеПоле, Стр)
     
     С = Стр.Получить("Колонки");
     Сообщить(С);
     С = СтрЗаменить(С, "ТекущийОбъект.row_id as [НомерСтрокиСправочника]", "РАЗЛИЧНЫЕ ТекущийОбъект.row_id as [НомерСтрокиСправочника]");
     Стр.Установить("Колонки", С);
     Сообщить(С);
           
КонецПроцедуры[/code]

Пишет "Неправильный синтаксис около слова DISTINCT"
Скажите, пожалуйста, что не так делаю.
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #667 - 23. Марта 2012 :: 06:59
Печать  
mozer писал(а) 19. Марта 2012 :: 11:47:
Скажите как решить проблему.
меняем стандартную форму справочника на форму с поставщиком данных. Если писать поставщик в форме справочника, то при закрытии формы 1С ПАДАЕТ. Если писать в отдельной обработке, то все работает. Но хочется писать в форме. Кто то знает?

Та же проблема.
  
Наверх
 
IP записан
 
DmitriyOvchinnikov
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 48
Местоположение: Екатеринбург
Зарегистрирован: 05. Марта 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #668 - 23. Марта 2012 :: 11:04
Печать  
Почему-то не срабатывает отбор по общему реквизиту в журнале документов.
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #669 - 23. Марта 2012 :: 16:01
Печать  
leshik писал(а) 19. Марта 2012 :: 13:05:
И зачем хочется?

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



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #670 - 23. Марта 2012 :: 18:56
Печать  
mozer писал(а) 23. Марта 2012 :: 16:01:
leshik писал(а) 19. Марта 2012 :: 13:05:
И зачем хочется?

что бы не городить огород, а писать в том месте где и положено  Подмигивание

Эм... кем положено?
  
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #671 - 23. Марта 2012 :: 18:58
Печать  
DmitriyOvchinnikov писал(а) 23. Марта 2012 :: 11:04:
Почему-то не срабатывает отбор по общему реквизиту в журнале документов.

Как видимо потому что у него не стоит признак "Отбор" в свойствах реквизита
  
Наверх
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #672 - 24. Марта 2012 :: 05:59
Печать  
leshik писал(а) 23. Марта 2012 :: 18:56:
mozer писал(а) 23. Марта 2012 :: 16:01:
leshik писал(а) 19. Марта 2012 :: 13:05:
И зачем хочется?

что бы не городить огород, а писать в том месте где и положено  Подмигивание

Эм... кем положено?

Все понятно ... пишу обработки ...  Улыбка
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #673 - 24. Марта 2012 :: 09:09
Печать  
подскажите как управлять видимостью колонки

в процедуре инициализации для колонки
добавлял: Колонка.Видимость = 0;

           Колонка = Колонки.Добавить("Артикул");
           Колонка.Заголовок = "Артикул";
           Колонка.Данные = "Артикул";
           Колонка.Ширина = 12;
           Колонка.ГоризонтальноеВыравнивание = 1;
           Колонка.Видимость = 0;

но колонка остается видимой
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #674 - 25. Марта 2012 :: 03:51
Печать  
leshik писал(а) 23. Марта 2012 :: 18:56:
mozer писал(а) 23. Марта 2012 :: 16:01:
leshik писал(а) 19. Марта 2012 :: 13:05:
И зачем хочется?

что бы не городить огород, а писать в том месте где и положено  Подмигивание

Эм... кем положено?

В тестовой базе как раз таки в форме списка это реализуется.
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #675 - 25. Марта 2012 :: 08:20
Печать  
с видимостью колонки разобрался,теперь нужно запретить пользователю изменять порядок колонок

     ТабличноеПоле.ИзменятьНастройкуКолонок =0;
     ТабличноеПоле.РазрешитьПеретаскивание =0;

почему-то не срабатывает
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #676 - 26. Марта 2012 :: 01:27
Печать  
Когда нажимаешь по шапке таблицы для выполнения сортировки вываливается такая ошибка:
Код
Выбрать все
ПоставщикДанных.Справочник::ПриВыбореЗаголовка(КолонкаТабличногоПоля ТекущаяКолонка=) : Поле агрегатного объекта не обнаружено
Если СвойстваРеквизита.Сортировка = 0 Тогда
{...\Classes\ПоставщикДанных\ПоставщикДанных.Справочник.ert(2927) }

ПоставщикДанных.ТабличноеПоле::ПриВыбореЗаголовка(КолонкаТабличногоПоля ТекущаяКолонка=) : ПоставщикДанных.Справочник::ПриВыбореЗаголовка(КолонкаТабличногоПоля ТекущаяКолонка=) : Поле агрегатного объекта не обнаружено
Если СвойстваРеквизита.Сортировка = 0 Тогда
{...\Classes\ПоставщикДанных\ПоставщикДанных.Справочник.ert(2927) }

вирт().ПриВыбореЗаголовка(ТекущаяКолонка);
{...\Classes\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(417) }

ПоставщикДанных.ТабличноеПоле::ПриВыбореЗаголовка(КолонкаТабличногоПоля ТекущаяКолонка=) : ПоставщикДанных.Справочник::ПриВыбореЗаголовка(КолонкаТабличногоПоля ТекущаяКолонка=) : Поле агрегатного объекта не обнаружено
Если СвойстваРеквизита.Сортировка = 0 Тогда
{...\Classes\ПоставщикДанных\ПоставщикДанных.Справочник.ert(2927) }

вирт().ПриВыбореЗаголовка(ТекущаяКолонка);
{...\Classes\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(417) }
 



При этом из контекстного меню сортировка работает.

Возможно я что-то упустил при формировании ПД?
« Последняя редакция: 26. Марта 2012 :: 03:18 - ziflex »  
Наверх
 
IP записан
 
DmitriyOvchinnikov
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 48
Местоположение: Екатеринбург
Зарегистрирован: 05. Марта 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #677 - 26. Марта 2012 :: 03:09
Печать  
leshik писал(а) 23. Марта 2012 :: 18:58:
DmitriyOvchinnikov писал(а) 23. Марта 2012 :: 11:04:
Почему-то не срабатывает отбор по общему реквизиту в журнале документов.

Как видимо потому что у него не стоит признак "Отбор" в свойствах реквизита

Признак "Отбор" - стоит. Два раза проверил.
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #678 - 26. Марта 2012 :: 03:39
Печать  
И еще один момент.
Это касается ПД справочников (с документами еще не работал).
При вводе нового элемента путем копирования флаг "ПризнакКопирования" имеет значение 0. Возможно ли сделать, чтоб передавалась 1? Или это сугубо системное значение?
И есть ли возможность отменить удаление элемента в событии "ПередУдалением"?
« Последняя редакция: 26. Марта 2012 :: 06:42 - ziflex »  
Наверх
 
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #679 - 27. Марта 2012 :: 03:24
Печать  
создал
ПоставщикДанных.ТипЗначений = "Документ.РасходнаяНакладная";
не работает установка интервала
Сообщение об ошибке
"State 42S22? Native 207
invalid column name 'date_time_iddoc_time_iddoc'
  
Наверх
 
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #680 - 27. Марта 2012 :: 03:34
Печать  
Ошибка в функции "СформироватьТекстОтбора" в строке
СтрокаЗначения = СтрЗаменить(СтрокаЗначения, "[ТаблицаЖурнала].date", "[ТаблицаЖурнала].date_time_iddoc");
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


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

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

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
novichek
Экс-Участник


Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #683 - 27. Марта 2012 :: 09:29
Печать  
Саш, а когда можно будет на "поставщике", и в частности на "отборе" сделать нечто похожее на СКД 8-шное? Улыбка
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #684 - 28. Марта 2012 :: 03:58
Печать  
novichek, чуть подробнее что имеешь в виду расшифруй
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
novichek
Экс-Участник


Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #685 - 28. Марта 2012 :: 09:47
Печать  
vandalsvq писал(а) 28. Марта 2012 :: 03:58:
novichek, чуть подробнее что имеешь в виду расшифруй


ну для начала н.р. что класс отбор насколько я понял создавался исходя из конкретной цели: повесить его на справочник/журнал.
На это указывает внутренний механизм определения типов реквизитов. Т.е. если я хочу на его основе сделать фильтр для отчета по продажам, где как минимум есть Контрагент и Номенклатура, то имею сложности. Картинка для ясности...
  

SKD_77.JPG ( 93 KB | Загрузки )
SKD_77.JPG
Наверх
 
IP записан
 
novichek
Экс-Участник


Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #686 - 28. Марта 2012 :: 09:51
Печать  
т.е. хотелось бы иметь возможность сказать классу: " у меня в итоговой таблице есть реквизит "вт.товар" с типом "справочник.Товары", затем пользователь мог бы понапридумывать и указать кучу разных фильтров по товару, и по его реквизитам, а класс мне бы вернул готовый кусок запроса с "джойнами". Вот.

я не слишком многого хочу? ничего у меня не треснет?  Смех
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #687 - 28. Марта 2012 :: 10:54
Печать  
Класс "Объектыv8.Отбор" на самом деле создавался исходя из предположения его отдельного использования. Да он содержит внутренний анализатор, но как раз именно с целью возможности дальнейшего использования как самостоятельное решение.

Но вообще у меня были малость другие планы:
1. Надо научить класс "ПоставщикДанных.Отбор" добавлять элементы хотя бы из жесткого перечня полей. Пускай пока без вложенности.
2. Научить группировать отборы по видам "И, ИЛИ, НЕ". Т.е. строить групповые условия вроде "ИЛИ (А = 1 И Б = 2) ИЛИ (А = 3 И Б = 4). Потому как считаю что условия по простому сложению "И" - тупо и примитивно. Вообще не интересно Улыбка.
3. Научить класс "ПоставщикДанных.Отбор" добавлять элементы по иерархии с построением запроса и соединений.
Но возникает следующий вопрос - что если добавлено условие
Код
Выбрать все
Контрагент.Договор.Наименование = "А"
ИЛИ Контрагент.Договор.Наименование = "Б" 


Ведь тогда класс должен следить что на "Контрагент.Договор" уже есть соединение. Это в целях оптимизации. В этих же целях я бы продумал механизм ограничения уровней. Чтобы не сильно пользователи развлекались, а то кто их знает.
Тем более есть масса нюансов, неопределенные реквизиты, субконто (те же неопределенные мать их так), периодические реквизиты, безвидовые реквизиты у которых вообще хрен знает как правильнее поступить Улыбка. Именно поэтому данный пункт у меня в самом конце. Улыбка
  

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


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

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

Поймите меня правильно по "бесплатной линии" у меня много задач, я пишу проект на 8-ке который надо тоже заканчивать, спеца хочется сдать наконец уже (скорее для галочки конечно), у меня пара хороших идей на 8-ке лежит в ящике пылится. В общем при желании я найду множество занятий для того чтобы свой досуг заполнить. Конечно данный проект не на последнем месте. Но в списке приоритетов он на 3-4 месте. Поэтому получается когда я устаю делать 1-й и 2-й пункт я сажусь и делаю данный проект Улыбка (а нулевой априори - семья).

Так что вариант такой: 1. ждать новостей по мере продвижения конечно же буду говорить, 2. найти желающих кроме "себя любимого" и поговорить о фонде оплаты, 3. попробовать сделать самому и данное предложение отдать мне на включение в состав класса. В п.3 сразу предупреждаю: я - гр##анный педант, и если мне не нравится как оформлен код даже читать не всегда стану Улыбка. Понимаю что сам иногда не всегда "кошерен", но все же.
  

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



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #689 - 28. Марта 2012 :: 11:41
Печать  
Цитата:
2. найти желающих кроме "себя любимого" и поговорить о фонде оплаты

Я буду как минимум второй готовый поговорить и поддержать "фонд оплаты"
Особенно ратую за сложные условия в отборе.
vandalsvq, а вообще надо от предмета разговора плясать - ориентировочную сумму в студию! Улыбка
  
Наверх
IP записан
 
novichek
Экс-Участник


Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #690 - 28. Марта 2012 :: 12:03
Печать  
ок. Попробуем пойти по пути 3.

Вопрос: в классе "Поленастройки" в процедуре "РазобратьПутьКДанным" используется понятие "родитель". Насколько я понимаю эта как раз та таблица к которой должен/может интегрироваться отбор (то о чем я писал несколькими постами выше).

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

Понятно написал?
  
Наверх
 
IP записан
 
novichek
Экс-Участник


Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #691 - 28. Марта 2012 :: 12:07
Печать  
а насчет сложных условий, на мой взгляд это как раз будет более актуально после того как можно будет использовать в отборе значения реквизитов "по иерархии".
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #692 - 28. Марта 2012 :: 14:05
Печать  
Чтобы реализовать п.3 надо сейчас надо внести изменения в класс "ПолеНастройки". Дело не в пресловутом родителе или другом поле. Просто иначе надо малость реализовать подход.
Я хочу попробовать внести некоторые изменения сегодня в класс, так сказать положить начало п.1 тогда я смогу объяснить будущую стратегию как надо вносить изменения. Ну по крайней мере на мой взгляд.
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #693 - 28. Марта 2012 :: 14:45
Печать  
И вот вопрос. Готовы ли заплатить обратной совместимостью ради данного функционала? Или будем плодить новые объекты и их изучать?  Смех
  

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


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #694 - 29. Марта 2012 :: 02:43
Печать  
vandalsvq писал(а) 27. Марта 2012 :: 04:27:
Заявляя об ошибке не забывайте указывать номер версии. Иначе просто усложняете мне работу. И так времени в обрез, еще и проверять то что например в последней версии работает мне вообще не в прикол.

ПоставщикДанных.Версия = "4.3.1 30.12.2011"

конфа давно уже не типовая. и работает данный класс не с типовым объектом.
если нужно, могу выложить конфу с этими объектами.

так как же все таки отменить удаление элемента справочника?
  
Наверх
 
IP записан
 
viddik
Junior Member
**
Отсутствует



Сообщений: 37
Зарегистрирован: 22. Октября 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #695 - 29. Марта 2012 :: 04:15
Печать  
Цитата:
Я буду как минимум второй готовый поговорить и поддержать "фонд оплаты"
Особенно ратую за сложные условия в отборе.
vandalsvq, а вообще надо от предмета разговора плясать - ориентировочную сумму в студию! Улыбка

+ 1
Думаю, если о планах по разработке будет четко объявлено, с указанием требуемой суммы, то еще желающие найдутся.
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #696 - 29. Марта 2012 :: 07:14
Печать  
При отключении иерархии и последующем включении открывается группа в которой были до переключения иерархии, а не та к которой относится текущий элемент списка.

Поставщик данных - справочник номенклатура с доп. полями остаток и резервов. Используется для подбора.

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

пожалуйста подскажите как исправить  - это важно

версия поставщика 1Cv7_ext_TF_008
  
Наверх
 
IP записан
 
novichek
Экс-Участник


Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #697 - 29. Марта 2012 :: 10:24
Печать  
vandalsvq писал(а) 28. Марта 2012 :: 14:45:
И вот вопрос. Готовы ли заплатить обратной совместимостью ради данного функционала? Или будем плодить новые объекты и их изучать?  Смех

Готов! Улыбка
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #698 - 29. Марта 2012 :: 17:27
Печать  
То что я возьмусь счас доделывать - в прикрепленном изображении. Т.е. по сути это п.1 и п.2 из то что я говорил.
Вам (если есть желание) останется самое "вкусное" на закуску. Хотя честно признаюсь, я наврядли буду сам пользоваться когда либо более 1-го уровня вложенности.

Главное изменение - необязательность наличия имени в элементе или группе отбора. Главный объект - идентификатор (Guid). По нему происходит вся работа.
- Есть небольшой вопросик... как быть с предопределенными отборами?
Предлагаю реализовать так, как приведено на картинке. Т.е. в спец. группе "Предопределенные". Удалять ее нельзя будет, изменять можно. Все как сейчас только с нюансом что в специальной группе.
- Еще в форме будет перетаскивание между Табличными полями с добавлением в соотв. группу.
- Еще в объекте "Отбор" будут изменены все существующие методы + добавлены новые.

В принципе я оцениваю степень готовности - 40-50%. Т.е. мне бы немного времени (2-5 дней) и был бы первый тестовый вариант.

Стоимость я не буду озвучивать. Калькуляция в данном случае мне не совсем понятна, по часам - дорого, как то иначе не умею. Пускай каждый для себя решит ценность и в при желании свяжется со мной через ЛС или почту.
« Последняя редакция: 29. Марта 2012 :: 19:44 - vandalsvq »  

________________001.JPG ( 63 KB | Загрузки )
________________001.JPG

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
novichek
Экс-Участник


Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #699 - 30. Марта 2012 :: 02:04
Печать  
хм, выглядит очень даже ... заинтриговал Улыбка
по поводу предопределенных отборов: что тебя самого смущает в предложенном тобой варианте? вроде все логично.
  
Наверх
 
IP записан
 
viddik
Junior Member
**
Отсутствует



Сообщений: 37
Зарегистрирован: 22. Октября 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #700 - 30. Марта 2012 :: 07:25
Печать  
vandalsvq писал(а) 29. Марта 2012 :: 17:27:
Пускай каждый для себя решит ценность и в при желании свяжется со мной через ЛС или почту.

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #701 - 01. Апреля 2012 :: 21:37
Печать  
И так, прошли выходные. Новостей пока не много.
Решаю задачу как сделать правильнее. Чтобы дерево доступных полей строилось через соотв. расширение (ПоставщикДанных.ДоступныеПоля), тогда конечно в будущем вам будет удобнее (например при построении формы как на скриншоте). С другой стороны мне вот например это не очень надо. Да и расширение со всеми своими обвязками - слишком затратно. Может научить просто расширение "ДеревоЗначений" строиться по объекту "ДоступныеПоля". Это наверное было бы удобнее. Ну и естественно никакого редактирования и пр. только свертка/развертка
Код
Выбрать все
ПоставщикДанных.ТипЗначений = "ДеревоЗначений";
ПоставщикДанных.Данные.ЗаполнитьПоОбъекту(ДоступныеПоля);
ПоставщикДанных.Обновить(); 


Ваше мнение господа?
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
novichek
Экс-Участник


Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #702 - 02. Апреля 2012 :: 03:44
Печать  
Не совсем понятна суть вопроса. Ты имеешь ввиду, делать ли отдельный класс для "доступных полей", или просто дерево значений научить?
Мне казалось что для этой цели достаточно просто спец. обработки (по типу ПоставщикДанных.РедактированиеСписка.ert). Не?
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #703 - 02. Апреля 2012 :: 08:09
Печать  
К разработчику, пожалуйста обратите внимание на этот вопрос,
проверено на последнем версии - 4.3.1 от 12.03.12  - ошибка сохраняется.

Это очень важно при работе

dimm73 писал(а) 29. Марта 2012 :: 07:14:
При отключении иерархии и последующем включении открывается группа в которой были до переключения иерархии, а не та к которой относится текущий элемент списка.

Поставщик данных - справочник номенклатура с доп. полями остаток и резервов. Используется для подбора.

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

пожалуйста подскажите как исправить  - это важно

версия поставщика 1Cv7_ext_TF_008
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #704 - 02. Апреля 2012 :: 08:58
Печать  
Цитата:
Ты имеешь ввиду, делать ли отдельный класс для "доступных полей", или просто дерево значений научить?


Я вроде так и написал  Подмигивание

В общем просто обработки может быть недостаточно. Например если она будет ты сможешь редактировать список отборов (правая часть скриншота), но для отображения доступных полей (левая часть) тебе придется писать заполнение самостоятельно. Если учесть что я его написал, вытащить его наружу мне не сложно, другое дело как это сделать.
Но судя по тому что собственный поставщик - избыточен тогда я наверное ограничусь заполнением поставщика "ДеревоЗначений"

2 dimm73, постараюсь не забыть.
  

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


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #705 - 03. Апреля 2012 :: 09:59
Печать  
Вроде пошло у меня со скрипом. Подскажите, у меня поставщик - ИТ. как добавить колонку с пиктограммой/рисунком?
  
Наверх
 
IP записан
 
NeoN
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 15
Зарегистрирован: 28. Марта 2012
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #706 - 03. Апреля 2012 :: 11:03
Печать  
Добрый день!

поделитесь пожалуйста примером как работы с "Объект-расширение «ПоставщикДанных.Справочник»"

документация очень общираня, а примеров к ней к сожалению нет  ПлачущийПечаль


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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #707 - 03. Апреля 2012 :: 11:07
Печать  
ANik писал(а) 03. Апреля 2012 :: 09:59:
Вроде пошло у меня со скрипом. Подскажите, у меня поставщик - ИТ. как добавить колонку с пиктограммой/рисунком?



1.5 года назад я делал так для журнала документов в процедуре инициализации ТП, только и релиз ПоставщикаДанных был старым

     Колонка = Колонки.Добавить("Картинка");
     Колонка.Заголовок = "ИС";
     Колонка.Данные = "Картинка";
     Колонка.Ширина = 6;
     Колонка.ГоризонтальноеВыравнивание = 3;

     ТабличноеПоле.Колонки.Картинка.УстановитьКартинкиСтрок(ИконкиДок,16);

и в событии ПриВыводеСтроки
по условию назначал
           ОформлениеСтроки.Ячейки.Картинка.ОтображатьКартинку=1;
           ОформлениеСтроки.Ячейки.Картинка.ОтображатьТекст=0;
           ОформлениеСтроки.Ячейки.Картинка.ИндексКартинки=10
  
Наверх
 
IP записан
 
NeoN
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 15
Зарегистрирован: 28. Марта 2012
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #708 - 03. Апреля 2012 :: 15:35
Печать  
подскажите пожалуйста, как сделать чтоб в Табличном поле отображалось содержимое определенного каталога(родителя справочника) со всеми вложенными группами?  

Код
Выбрать все
Перем ПоставщикДанных;
Перем ДанныеСправочник;

Процедура ПараметрыКолонки(Идентификатор,Видимость=1,Ширина=0)
	Колонка = ДанныеСправочник.ТабличноеПоле.Колонки.Получить(Идентификатор);
	Колонка.Видимость = Видимость;
	Если ПустоеЗначение(Ширина)=0 Тогда
		Колонка.Ширина=Ширина;
		Колонка.ИзменениеРазмера=0;
	КонецЕсли;
КонецПроцедуры

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

	ДанныеСправочник = ПоставщикДанных.Данные;
	ДанныеСправочник.КнопкаПросмотр = 1;
	ДанныеСправочник.СоздатьКнопкиПоУмолчанию();

	ТабличноеПоле = ДанныеСправочник.ТабличноеПоле;
	ТабличноеПоле.СтильЗаголовков = 1;
	ТабличноеПоле.СтильРамки = 1;

	ДанныеСправочник.НоваяКолонка("Код");
	ПараметрыКолонки("Код",1,80);
	ДанныеСправочник.НоваяКолонка("Наименование");

	// добавим все остальные колонки по метаданным но скроем их
	МетаСправочник = Метаданные.Справочник("ТМЦ");
	Для НомерРеквизита = 1 По МетаСправочник.Реквизит() Цикл
		МетаРеквизит = МетаСправочник.Реквизит(НомерРеквизита);
		Идентификатор = МетаРеквизит.Идентификатор;
		ДанныеСправочник.НоваяКолонка(Идентификатор);

		ПараметрыКолонки(Идентификатор,0);
		//Колонка = ТабличноеПоле.Колонки.Получить(Идентификатор);
		//Колонка.Видимость = 0;
	КонецЦикла;
	ДанныеСправочник.Автообновление=1;
	ДанныеСправочник.Обновить();
КонецПроцедуры

Процедура ПриОткрытии()
	УправлениеФормой = СоздатьОбъект("УправлениеФормой");
	Привязка = УправлениеФормой.ПривязкаЭлементов;
	Привязка.УстановитьГраницыПоФорме("КонтейнерКП",1,1,1,0);
	Привязка.УстановитьГраницыПоФорме("КонтейнерТП",1,1,1,1);
	Привязка.УстановитьГраницыПоФорме("КнСформировать",1,0,0,1);
	Привязка.УстановитьГраницыПоФорме("КнЗакрыть",0,1,0,1);

	Привязка.Привязать();

	// есть некоторые нюансы если не указать конкретно слой
	Форма.ИспользоватьСлой("Основной",2);
КонецПроцедуры

//======================================================================
// Процедура является предопределенной для формы. Реализуется посредством ВК FormEx
Процедура ПослеОткрытия()
	// небольшая хитрость чтобы кнопки не пропадали
	Форма.КонтейнерКП.Видимость(0);
	Форма.КонтейнерКП.Видимость(1);
КонецПроцедуры // ПослеОткрытия
 

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


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

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

Код
Выбрать все
	ОтборНаименование = ДанныеСправочник.Отбор.Наименование;
	ОтборНаименование.Значение		= "Контрагент";
	ОтборНаименование.ВидСравнения	= "Содержит";

	Группа1 = ДанныеСправочник.Отбор.ДобавитьГруппуОтбора();
	Группа1.ТипГруппы = "И";
	Группа1.Представление = "Доп. группа";

	Группа2 = ДанныеСправочник.Отбор.ДобавитьГруппуОтбора(Группа1);
	Группа2.ТипГруппы = "ИЛИ";
	Группа2.Представление = "Наименование";

	Элемент1 = ДанныеСправочник.Отбор.ДобавитьЭлементОтбора(Группа2);
	Элемент1.ПолеНастройки	= ДанныеСправочник.Отбор.ПолучитьДоступныеПоля().Наименование;
	Элемент1.Значение		= "Контрагент наименование";
	Элемент1.ВидСравнения	= "Равно";
 



Очень прошу, всех кто пользуется классом, помогайте новичкам. Потому что если я им буду помогать, не скоро все это закончится.

По ценнику более или менее определился. Хотелось бы купить себе пару новых клюшек, а то текущая скоро на покой пойдет (кто не в курсе я хоккеем занимаюсь Улыбка). Цена пары около 11 т.р.
  

_______009.JPG ( 71 KB | Загрузки )
_______009.JPG

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #710 - 05. Апреля 2012 :: 21:12
Печать  
Сегодня добавилось:
1. Интерактивное перетаскивание элементов отбора между группами
2. Добавление групп элементов
3. Копирование элементов и групп
4. Удаление элементов и групп

Желающие просто потыкать говорите Улыбка
Могу дать сборку для справочника чтобы посмотреть.

Пы.сы. тов. leshik таки уговорил меня на выдачу реквизитов. Если кто вдруг надумает то у него все есть про меня Улыбка
  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #711 - 06. Апреля 2012 :: 06:55
Печать  
Разбираюсь с ПД.Справочник.
Возник вопрос по событиям. Хочу обработать событие "ПередНачаломДобавления"
Код
Выбрать все
//************************************************
Процедура КТПередНачаломДобавления(Копирование, Родитель, ЭтоГруппа, ФСО)
	ФСО = 0;
	//а=0;
КонецПроцедуры 


Однако элемент всёравно создается.
В документации описано:
"•      Копирование – признак (1,0) копирования элемента.
•      Родитель – группа справочника в которой инициируется добавление элемента
•      ЭтоГруппа – признак (1,0) добавления группы
•      ФСО – флаг стандартной обработки
", но Копирование - это табличное поле, ФСО тоже явно что-то другое, так как по умолчанию ФСО=0, но элемент всёравно создается . Помогите разобраться с сей непоняткой.
З.Ы. Давайте создадим отдельно тему и закрепим её в заголовке, куда можно будет скидывать примеры использования различных поставщиков данных, чтоб новичкам легче было стартовать. Демо-конфы явно не хватает...
  

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


1C++ rocks!

Сообщений: 15
Зарегистрирован: 28. Марта 2012
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #712 - 06. Апреля 2012 :: 08:16
Печать  
vandalsvq писал(а) 05. Апреля 2012 :: 21:12:
Желающие просто потыкать говорите Улыбка
Могу дать сборку для справочника чтобы посмотреть.

Пы.сы. тов. leshik таки уговорил меня на выдачу реквизитов. Если кто вдруг надумает то у него все есть про меня Улыбка


Желающие есть покажи пожалуйста!

al_zzz писал(а) 06. Апреля 2012 :: 06:55:

З.Ы. Давайте создадим отдельно тему и закрепим её в заголовке, куда можно будет скидывать примеры использования различных поставщиков данных, чтоб новичкам легче было стартовать. Демо-конфы явно не хватает...


Да да примеров парочку если можно на "ПоставщикДанных.Справочник.ert"
очень не хватает...
  
Наверх
 
IP записан
 
novichek
Экс-Участник


Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #713 - 06. Апреля 2012 :: 11:43
Печать  
vandalsvq писал(а) 05. Апреля 2012 :: 21:12:
Сегодня добавилось:
1. Интерактивное перетаскивание элементов отбора между группами
2. Добавление групп элементов
3. Копирование элементов и групп
4. Удаление элементов и групп

Желающие просто потыкать говорите Улыбка
Могу дать сборку для справочника чтобы посмотреть.

Пы.сы. тов. leshik таки уговорил меня на выдачу реквизитов. Если кто вдруг надумает то у него все есть про меня Улыбка


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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #714 - 06. Апреля 2012 :: 12:40
Печать  
2 al_zzz, а еще в документации сказано что ВСЕГДА первый параметр - элемент табличное поле  Класс
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #715 - 06. Апреля 2012 :: 13:07
Печать  
2 all, завсегдатаи этой темы... товарищи, если вы не будете помогать "новичкам" тогда зачем вы тут? Чтобы посмотреть, почитать и пойти далее? Я ведь тогда и вам помогать не буду если сложный вопрос будет Подмигивание
  

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


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

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

Код
Выбрать все
	ЭлементОформления = ДанныеСправочник.УсловноеОформление.Добавить();
	ЭлементОформления.Использование = 1;

	ЭлементОтбора = ЭлементОформления.Отбор.ДобавитьЭлементОтбора();
	ЭлементОтбора.ПолеНастройки	= ДоступныеПоля.Наименование;
	ЭлементОтбора.ВидСравнения	= "НачинаетсяС";
	ЭлементОтбора.Значение		= "ООО";

	ОформлениеДанных = ЭлементОформления.Оформление;
	ОформлениеДанных.УстановитьПараметр("ЦветФона"		, ПалитраЦветов.Серый);
	ОформлениеДанных.УстановитьПараметр("ЦветТекста"	, ПалитраЦветов.ТемноСиний);	 


  

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


1C++ rocks!

Сообщений: 47
Зарегистрирован: 01. Апреля 2010
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #717 - 07. Апреля 2012 :: 16:46
Печать  
Ням-ням.
А можно, желающим потыкать, дать сборку для справочника, чтобы посмотреть.

А новичкам выкладываю пример:
1) реализации простого справочника с автоматическим обновлением списка при создании/изменении/удалении элемента справочника.
2) реализация подбора из справочника в виде дерева (элемент ТорговоеОборудование выбор рабочего места).
  

EXAMPLES.7z ( 1419 KB | Загрузки )
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #718 - 07. Апреля 2012 :: 20:12
Печать  
В общем что работает:
1. Новый отбор в поставщике данных "Справочник.Имя". Для других объектов не работает
2. Также изменены некоторые "плохие" поведения класса
3. Условное оформление не работает. Пока просто можно создать объекты, но они не используются.
4. Отборы уже накладываются
5. Возможно пострадала обратная совместимость, особенно если в путь к данным полей настройки вы прописывали с точками. Теперь это запрещено.
6. Доработана документация.
7. В форме настройки отбора работает драг и дроп Улыбка

Пробуйте. Все ошибки можно выкладывать, будем исправлять. Но не засоряйте форум, прикрепляйте тхт-шками. А еще лучше просто шлите мне на мыло vandalsvq[@]gmail.com
Окончательный вариант планируется на конец следующей недели.

Пы.сы. кому там надо было отключение иерархии, в новой версии работает, уж перенесите себе самостоятельно. Там одна процедура всего лишь.
« Последняя редакция: 08. Апреля 2012 :: 18:47 - vandalsvq »  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #719 - 08. Апреля 2012 :: 18:51
Печать  
В выложенном ранее варианте было достаточно много ошибок. В общем исправил, но теперь поменялось еще больше.
1. Больше нет класса "ПоставщикДанных.ВидыСравнения", есть просто "ВидыСравнения"
2. Больше нет класса "ПоставщикДанных.ОписаниеТипов", есть просто "ОписаниеТипов"
3. Больше нет атрибутов ТипВид, Тип, Вид, Длина, Точность у элементов отбора и полей настройки.
4. У элемента отбора нет вообще никаких реквизитов указывающих на тип данных. Описание типов хранится в поле настройки указанном в элементе отбора.

Теперь добавлен еще и список документов одного вида (Документ.Вид). Но тестовая версия будет позже. Счас выкладывать не буду. Надо еще самому доделать некоторые моменты.
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #720 - 08. Апреля 2012 :: 20:59
Печать  
В общем то кое-какие хвосты я подтянул за собой. Что изменилось:
1. Добавилась поддержка "Журнал.Вид". Таким образом можно посмотреть документы, журналы и справочники. Также работают: табличная часть, список значений, дерево значений, индексированная таблица.
2. Добавлен новый метод для получения текста запроса по полю настройки. Пригодится тем кто планирует использовать в отчетах.
3. В архив добавлены примеры для конфигурации "Бухгалтерия".

Кстати вопрос... оставить версию 4.4.1, или сделать 5.0.1? Улыбка
« Последняя редакция: 10. Апреля 2012 :: 05:01 - vandalsvq »  

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


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #721 - 08. Апреля 2012 :: 23:42
Печать  
При открытии списка с установленным по умолчанию отбором - кнопка не "нажата".
И ошибка по нажатию на заголовок для отбора не пропала Печаль
ПоставщикДанных.Справочник
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #722 - 09. Апреля 2012 :: 03:37
Печать  
vandalsvq писал(а) 06. Апреля 2012 :: 12:40:
2 al_zzz, а еще в документации сказано что ВСЕГДА первый параметр - элемент табличное поле  Класс


Это я прочитал и понял - непонятно, почему ФСО по умолчанию 0 и действие всёравно происходит?
  

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


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

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

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #724 - 09. Апреля 2012 :: 03:58
Печать  
al_zzz писал(а) 09. Апреля 2012 :: 03:37:
Это я прочитал и понял - непонятно, почему ФСО по умолчанию 0 и действие всёравно происходит?

Потому что у тебя первый параметр - не табличное поле.... сдвинь все на один и поставь его первым. Сейчас у тебя ФСО = ЭтоГруппа на самом деле.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
novichek
Экс-Участник


Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #725 - 09. Апреля 2012 :: 05:20
Печать  
Саш, номер версии ИМХО не принципиально. А вот как определяется глБиблиотекаКартинокПоставщика? в выложенной тобой сборке.
ЗЫ: И еще, Саш, выложи пожалуйста в архиве тестовую базу со всеми необходимыми классами и папками для их резмещения, а то что-то каждый запуск теста превращается в квест: то лежит не там, то версия не та Печаль
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #726 - 09. Апреля 2012 :: 06:55
Печать  
vandalsvq писал(а) 09. Апреля 2012 :: 03:57:
Не нажата кнопка "Отбор по текущей колонке"? Дык он на то и "по тек. колонке" что она активизируется только когда активизированная колонка на которой есть отбор. Поведение кнопки изменилось.
Ошибку глянем. Специально я их не выискиваю  Подмигивание

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

2012-04-09_175204.png ( 3 KB | Загрузки )
2012-04-09_175204.png
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #727 - 09. Апреля 2012 :: 07:03
Печать  
2 novichek, кстати для твоей задачи (вложенности уровней) практически все сделано уже. Осталось не так уж и много кстати. Но сначала стабильный релиз. По сути только научить строить вложенные поля и добавить пару атрибутов Улыбка
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #728 - 09. Апреля 2012 :: 07:10
Печать  
ziflex писал(а) 09. Апреля 2012 :: 06:55:
Я не точно выразился, извиняюсь.
Имел ввиду кнопку устанавливающую множественный фильтр.


А разве когда-то она была нажата? Не помню чтобы раньше такое было, и не помню чтобы этот код я удалял. Улыбка
В принципе эта кнопка открывает форму, она вроде как не предполагает возможности нажатия, потому как остается вопрос, а что она делает когда ее нажимают повторно? Улыбка))))

2 all
И вообще кстати в скором времени возможно именно эта кнопка будет заменена. Вместо "УстановитьОтбор" будет кнопка "Настроить список". Соответственно кнопка настройки колонок тоже ликвидируется.
Таким образом в одной форме будут настраиваться:
1. Колонки и их положение
2. Отборы
3. Оформление
Но может быть я передумаю и просто отдельно появится кнопка оформления списка.

Кстати никто не хочет продумать интерфейс сохранения и восстановления настроек отбора (в последствии и оформления)?
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
novichek
Экс-Участник


Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #729 - 09. Апреля 2012 :: 07:34
Печать  
vandalsvq писал(а) 09. Апреля 2012 :: 07:03:
2 novichek, кстати для твоей задачи (вложенности уровней) практически все сделано уже. Осталось не так уж и много кстати. Но сначала стабильный релиз. По сути только научить строить вложенные поля и добавить пару атрибутов Улыбка

Отличная новость! Буду ждать с нетерпением!

Что насчет "быстроразворачиваемой" демки? Не сложно же вроде должно быть?
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #730 - 09. Апреля 2012 :: 08:54
Печать  
vandalsvq писал(а) 09. Апреля 2012 :: 03:58:
al_zzz писал(а) 09. Апреля 2012 :: 03:37:
Это я прочитал и понял - непонятно, почему ФСО по умолчанию 0 и действие всёравно происходит?

Потому что у тебя первый параметр - не табличное поле.... сдвинь все на один и поставь его первым. Сейчас у тебя ФСО = ЭтоГруппа на самом деле.
А как установить начальные значения при создании нового элемента?
  

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


1C++ rocks!

Сообщений: 41
Местоположение: UA
Зарегистрирован: 23. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #731 - 09. Апреля 2012 :: 09:20
Печать  
Цитата:
Саш, номер версии ИМХО не принципиально. А вот как определяется глБиблиотекаКартинокПоставщика? в выложенной тобой сборке.
ЗЫ: И еще, Саш, выложи пожалуйста в архиве тестовую базу со всеми необходимыми классами и папками для их резмещения, а то что-то каждый запуск теста превращается в квест: то лежит не там, то версия не та Печаль


Тестовая база было бы гуд Улыбка
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

2 Alexx_S, novichek может быть сделаю чуть позже. На работе ничего по 7.7 не держу, а дома время будет не ранее чем завтра.

На заглавное сообщение темы про обновления добавил информацию о реквизитах на Яндекс-Деньги. Другим не пользуюсь, но думаю это не проблема для тех кто электронными деньгами пользуется.
Сбор на клюшки официально стартует.  Подмигивание
  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #733 - 09. Апреля 2012 :: 10:19
Печать  
vandalsvq писал(а) 09. Апреля 2012 :: 10:11:
2 al_zzz, все входящие параметры по умолчанию уже заполнены. Про какое создание ты говоришь я не очень понимаю Улыбка

Имею ввиду заполнение реквизитов справочника по умолчанию при создании нового элемента.
  

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


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

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

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #735 - 09. Апреля 2012 :: 12:33
Печать  
dimm73 писал(а) 29. Марта 2012 :: 07:14:
При отключении иерархии и последующем включении открывается группа в которой были до переключения иерархии, а не та к которой относится текущий элемент списка.

Поставщик данных - справочник номенклатура с доп. полями остаток и резервов. Используется для подбора.

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

пожалуйста подскажите как исправить  - это важно

версия поставщика 1Cv7_ext_TF_008



спасибо, что исправили .
Но тут же обнаружился еще недочет , который так же был в старой версии.
При движении по списку номенклатуры с включенной иерархией если зайти в папку (например 4-го уровня), а потом кликнуть по папке самого верхнего уровня , то очень часто курсор перескакивает с нужной мне папки на первую по списку.  

Иногда клик по папке верхнего уровня не срабатывает совсем. Закономерность такого поведения  не выявлена (на старом релизе кажется этого бага не было).

наверное путано написал, но надеюсь поймете.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #736 - 10. Апреля 2012 :: 05:00
Печать  
2 dimm73, а у тебя случаем не стоит признак у справочника "ОтображатьИерархию" = 1, и по умолчанию он вроде 1 и ставится. В таком случае рядом с папочкой отображается стрелочка, так вот одинарное нажатие на нее разворачивает и сворачивает группы, чтобы не надо было дважды кликать. Если отключить это свойство все будет как в стандартном поведении.

Собственно немного обновил сборку, добавил операции и проводки. На очереди регистры и что там еще осталось? Улыбка
Обновились и примеры. Подробнее в соседней теме.
  

1Cv7_ext_TF_012.rar ( 1197 KB | Загрузки )

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


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #737 - 10. Апреля 2012 :: 08:43
Печать  
vandalsvq писал(а) 10. Апреля 2012 :: 05:00:
2 dimm73, а у тебя случаем не стоит признак у справочника "ОтображатьИерархию" = 1, и по умолчанию он вроде 1 и ставится. В таком случае рядом с папочкой отображается стрелочка, так вот одинарное нажатие на нее разворачивает и сворачивает группы, чтобы не надо было дважды кликать. Если отключить это свойство все будет как в стандартном поведении.

Собственно немного обновил сборку, добавил операции и проводки. На очереди регистры и что там еще осталось? Улыбка
Обновились и примеры. Подробнее в соседней теме.



нет у меня ОтображатьИерархию - не использовалось.
  
Наверх
 
IP записан
 
dimm73
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 414
Зарегистрирован: 03. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #738 - 10. Апреля 2012 :: 08:45
Печать  
обнаружилась закономерность в ошибке: "
Иногда клик по папке верхнего уровня не срабатывает совсем. "

такое случается если несколько раз включить и отключить иерархию. Помогает только нажатие на клавишу "Обновить список"
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #739 - 11. Апреля 2012 :: 05:46
Печать  
Вопрос :
В событии "ПередУдалением" можно ли как-нибудь сообщить ПД.Справочники о том, что я хочу НЕ пометить на удаление, а полностью удалить выбранный элемент? Либо мне это уже самому необходимо реализовывать?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #741 - 11. Апреля 2012 :: 10:42
Печать  
Обнаружил неприятную вещь оказывается если поменять тип поставщика в уже созданном и типизированном объекте то 1С падает Улыбка))
Ну например сначала написать "Регистр.ТМЦ", а потом "Справочник.Контрагенты" то 1С-ка упадет Улыбка. Понимаю что "да кому оно надо" Улыбка)))))
Теперь понимаю что малость неверно иерархию построил. Надо было чтобы класс ТабличноеПоле был основным, а к нему задавались поставщики вроде
Код
Выбрать все
ТабличноеПоле.Расширение = СоздатьОбъект("ПоставщикДанных.Справочник");
Расширение = ТабличноеПоле.Расширение;
Расширение.Вид = "Контрагенты";
// и т.д. 


В принципе думаю даже без изменения программного интерфейса это можно реализовать. Тогда не будет падать смена Улыбка а будет просто очищаться все в ТП  Класс
Кстати тогда строить собственные расширения было бы очень и очень просто, потому что вы обязаны были бы соблюдать ряд требований Улыбка)) т.е. можно было бы описать только методы ТП и все понятно стало бы Улыбка
  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #742 - 11. Апреля 2012 :: 11:20
Печать  
Подскажите, как запретить пользователю в ПД.Справочник менять видимость и последовательность колонок?
  

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


Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #743 - 11. Апреля 2012 :: 11:33
Печать  
al_zzz писал(а) 11. Апреля 2012 :: 11:20:
Подскажите, как запретить пользователю в ПД.Справочник менять видимость и последовательность колонок?

Поставщик.Данные.ТабличноеПоле.ИзменятьНастройкуКолонок = 0;
не оно?
  
Наверх
 
IP записан
 
novichek
Экс-Участник


Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #744 - 11. Апреля 2012 :: 11:37
Печать  
vandalsvq писал(а) 11. Апреля 2012 :: 10:42:
Обнаружил неприятную вещь оказывается если поменять тип поставщика в уже созданном и типизированном объекте то 1С падает Улыбка))
Ну например сначала написать "Регистр.ТМЦ", а потом "Справочник.Контрагенты" то 1С-ка упадет Улыбка. Понимаю что "да кому оно надо" Улыбка)))))
Теперь понимаю что малость неверно иерархию построил. Надо было чтобы класс ТабличноеПоле был основным, а к нему задавались поставщики вроде
Код
Выбрать все
ТабличноеПоле.Расширение = СоздатьОбъект("ПоставщикДанных.Справочник");
Расширение = ТабличноеПоле.Расширение;
Расширение.Вид = "Контрагенты";
// и т.д. 


В принципе думаю даже без изменения программного интерфейса это можно реализовать. Тогда не будет падать смена Улыбка а будет просто очищаться все в ТП  Класс
Кстати тогда строить собственные расширения было бы очень и очень просто, потому что вы обязаны были бы соблюдать ряд требований Улыбка)) т.е. можно было бы описать только методы ТП и все понятно стало бы Улыбка


А не прокси-поставщика ли ты имеешь ввиду  Подмигивание ?
Была у меня мысль шальная такое реализовать, да еще и с нормальным наследование классов... даже пару месяцев потратил, но понял потом что не осилить Печаль
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #745 - 11. Апреля 2012 :: 11:45
Печать  
Цитата:
al_zzz писал(а) 11. Апреля 2012 :: 11:20:
Подскажите, как запретить пользователю в ПД.Справочник менять видимость и последовательность колонок?

Поставщик.Данные.ТабличноеПоле.ИзменятьНастройкуКолонок = 0;
не оно?

Не оно - ибо позволяет перетаскивать колонки из невидимых и наоборот.
  

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


Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #746 - 11. Апреля 2012 :: 12:06
Печать  
al_zzz писал(а) 11. Апреля 2012 :: 11:45:
Цитата:
al_zzz писал(а) 11. Апреля 2012 :: 11:20:
Подскажите, как запретить пользователю в ПД.Справочник менять видимость и последовательность колонок?

Поставщик.Данные.ТабличноеПоле.ИзменятьНастройкуКолонок = 0;
не оно?

Не оно - ибо позволяет перетаскивать колонки из невидимых и наоборот.

Может тогда:
сть = 0 ?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

Прокси хотел одно время сделать. Где-то кстати наброски валяются. Но в данном случае я не об этом пишу.
У меня структура организована так что расширения рулят всем, табличным полем, командной панелью, отборами и пр. внутренней кухней. А рулить должен всем класс наследник от ТП, а расширения должны говорить и делать то что говорит табличное поле. Но это просто мысли.
По идее можно победить падения и откинуть ее в сторону, приняв что иерархия устоялась и вполне себе нормально работает. Особых ограничений не накладывая.
  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #748 - 12. Апреля 2012 :: 06:30
Печать  
Цитата:
Может тогда:
сть = 0 ?

Всеравно дает перетаскивать колонки из невидимых и наоборот.
  

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


Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #749 - 12. Апреля 2012 :: 07:40
Печать  
al_zzz писал(а) 12. Апреля 2012 :: 06:30:
Цитата:
Может тогда:
сть = 0 ?

Всеравно дает перетаскивать колонки из невидимых и наоборот.

да, можно схватить и потащить, но "бросить" не дает. Колонки не исчезают и не появляются.
  
Наверх
 
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #750 - 13. Апреля 2012 :: 03:13
Печать  
Цитата:
да, можно схватить и потащить, но "бросить" не дает. Колонки не исчезают и не появляются.

А мне дает. Код:
Код
Выбрать все
 Процедура ПараметрыКолонки(Идентификатор,Видимость=1,Ширина=0, ИзменениеРазмера=1)
	СтрокаВТойжеКолонке = "
	|Скидка,
	| СуммаКредита,
	| ДатаОкончания,
	| Вид_расчета";
	СтрокаКолонкиСкрыть = "
	|ВалютаВзаиморасчетов,
	|НеКонтролироватьКредит,
	|ЗНСтандартныеУсловия,
	|ПроцентВыплаты,
	|Менеджер";
	Колонка = ДанныеСправочник.ТабличноеПоле.Колонки.Получить(Идентификатор);
	Если Найти(СтрокаКолонкиСкрыть,Идентификатор) = 0 Тогда
		Колонка.Видимость = Видимость;
	Иначе
		Колонка.Видимость = 0;
	КонецЕсли;
	Если ПустоеЗначение(Ширина)=0 Тогда
		Колонка.Ширина		= Ширина;
		Колонка.ИзменениеРазмера  = ИзменениеРазмера;
	КонецЕсли;
	Колонка.ИзменятьВидимость = 0;
	Если Найти(СтрокаВТойжеКолонке,Идентификатор)<>0 Тогда
		Колонка.Положение = 1;//В той же строке
	КонецЕсли;
КонецПроцедуры



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

	ДанныеСправочник = ПоставщикДанных.Данные;
	ДанныеСправочник.КнопкаПросмотр = 1;
	ДанныеСправочник.СоздатьКнопкиПоУмолчанию();
    ДанныеСправочник.Владелец = Контрагент;

	ТабличноеПоле = ДанныеСправочник.ТабличноеПоле;
	ТабличноеПоле.СтильЗаголовков = 1;
	ТабличноеПоле.СтильРамки = 1;
    ТабличноеПоле.СтильЗаголовков	   = 1;
	//ТабличноеПоле.РазрешитьПеретаскивание = 0;
	ТабличноеПоле.ИзменятьПозициюКолонок  = 0;
	ТабличноеПоле.ИзменятьНастройкуКолонок= 0;
	ТабличноеПоле.СтильРамки		  = 1;

	ДанныеСправочник.НоваяКолонка("Код");
	ПараметрыКолонки("Код",1,15);
	ДанныеСправочник.НоваяКолонка("Наименование");
    ПараметрыКолонки("Наименование",1,60);
	// добавим все остальные колонки по метаданным но скроем их
	МетаСправочник = Метаданные.Справочник("Договоры");
	Для НомерРеквизита = 1 По МетаСправочник.Реквизит() Цикл
		МетаРеквизит = МетаСправочник.Реквизит(НомерРеквизита);
		Идентификатор = МетаРеквизит.Идентификатор;
		ДанныеСправочник.НоваяКолонка(Идентификатор);

		ПараметрыКолонки(Идентификатор,1);
		//Колонка = ТабличноеПоле.Колонки.Получить(Идентификатор);
		//Колонка.Видимость = 0;
	КонецЦикла;
	ДанныеСправочник.Автообновление=1;
	ДанныеСправочник.Обновить();
КонецПроцедуры 

  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #751 - 14. Апреля 2012 :: 20:34
Печать  
А вы знали что 1С очень заботливо не создает таблиц (шапки или  строк) для документов у которых нет ни одного реквизита? Улыбка
Так вот знайте Улыбка. Сегодня напоролся.
В итоге запрос к нему не построишь, поставщик не сработает Улыбка.

И лечить не получается пока. С SQL вроде проблемы нет, а вот с SQLite есть. Дело в том что даже если есть хотя бы один реквизит (например общий без отбора) и он с типом "Строка.0" (неограниченная), тогда все равно таблицы нет. Улыбка А значение реквизита получить тоже не получается возможным. Ибо нет такой таблицы Улыбка. В общем я пошел Саше Орефкову напишу, может что сделает.
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #752 - 14. Апреля 2012 :: 21:36
Печать  
Все. Я вроде закончил.
Теперь официально основная версия 5.0.1 от 15.04.2012.
Описание и сборка в соответствующей теме.

ВНИМАНИЕ
- начиная с версии 5.0.1 поддержка версии 4.х.х прекращена. Частично пострадала обратная совместимость. Более подробно в документации.

Сразу предупрежу. В ближайшее время только исправления ошибок. Т.к. у меня много работы накопилось. По возможности сделаю сохранение и восстановление настроек.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
novichek
Экс-Участник


Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #753 - 16. Апреля 2012 :: 03:15
Печать  
vandalsvq писал(а) 14. Апреля 2012 :: 21:36:
Все. Я вроде закончил.
Теперь официально основная версия 5.0.1 от 15.04.2012.
Описание и сборка в соответствующей теме.

ВНИМАНИЕ
- начиная с версии 5.0.1 поддержка версии 4.х.х прекращена. Частично пострадала обратная совместимость. Более подробно в документации.

Сразу предупрежу. В ближайшее время только исправления ошибок. Т.к. у меня много работы накопилось. По возможности сделаю сохранение и восстановление настроек.


Отличная новость! Спасибо! Будем пробовать.
А можно сразу еще попросить актуальную версию "управления формой"?
  
Наверх
 
IP записан
 
viddik
Junior Member
**
Отсутствует



Сообщений: 37
Зарегистрирован: 22. Октября 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #754 - 16. Апреля 2012 :: 14:41
Печать  
Саша, спасибо за новую версию!
Сразу по замеченному:
1. В ПоставщикДанных.Справочник в процедуре СформироватьТекстОтбора конструкция
Код
Выбрать все
Если МетаСправочник.КоличествоУровней > 1 Тогда
	ТекстОтбора = "(" + ТекстОтбора + " or [ОсновнаяТаблица].isfolder = 1)";
КонецЕсли; 


мне кажется лишней, поскольку не дает использовать отбор по ЭтоГруппа. Я его использую, вот сразу и заметил Улыбка

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #755 - 16. Апреля 2012 :: 16:11
Печать  
2 viddik, по поводу п.1 я смотрел как работает в 8.2 в динамических списках. Там иерархия всегда представлена, даже если поставить "ЭтоГруппа = Ложь". Т.е. если убрать это условие то может получится что список совсем пустой. Можно конечно завязаться на ИерархическийПросмотр, соответственно если он = 1, тогда и невидимое условие остается, если же = 0 тогда убирается. Высказывайте мнение. Или вывести флаг для этого управления, типа "ОтборБезИерархии" Подмигивание. А по поводу п.2 будем посмотреть Подмигивание

Не хочу показаться меркантильным или занудой, но спасибо можно на яндекс-деньги скинуть Подмигивание. Я ведь на клюшки еще не насобирал  Очень довольный
  

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



Сообщений: 37
Зарегистрирован: 22. Октября 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #756 - 17. Апреля 2012 :: 01:37
Печать  
vandalsvq писал(а) 16. Апреля 2012 :: 16:11:
2 viddik, по поводу п.1 я смотрел как работает в 8.2 в динамических списках. Там иерархия всегда представлена, даже если поставить "ЭтоГруппа = Ложь". Т.е. если убрать это условие то может получится что список совсем пустой. Можно конечно завязаться на ИерархическийПросмотр, соответственно если он = 1, тогда и невидимое условие остается, если же = 0 тогда убирается.

Да, у меня сейчас так и завязано, если ИерархическийПросмотр, отбор по ЭтоГруппа=0 игнорируется. Я это использую в форме подбора, группы без иерархии там мешают.

vandalsvq писал(а) 16. Апреля 2012 :: 16:11:
Не хочу показаться меркантильным или занудой, но спасибо можно на яндекс-деньги скинуть Подмигивание. Я ведь на клюшки еще не насобирал  Очень довольный

Ничего занудного, все правильно, люди не ангелы и кушать хотят. Улыбка
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #757 - 17. Апреля 2012 :: 04:24
Печать  
Разместите сообщение в ветке по классу ПрямойЗапрос
  
Наверх
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #758 - 17. Апреля 2012 :: 04:32
Печать  
leshik писал(а) 17. Апреля 2012 :: 04:24:
Разместите сообщение в ветке по классу ПрямойЗапрос


Уупс... исправился..
  
Наверх
ICQ  
IP записан
 
KVIK
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #759 - 17. Апреля 2012 :: 15:04
Печать  
Опробовали ПоставщикДанных.Справочник.
На вскидку не сработали две вещи (Справочник Договора, подчинен справочнику Контрагенты):
- при попытке отмены удаления вылазит ошибка;
- сортировка по полю типа справочник происходит, предположительно, по внутреннему идентификатору, а не по наименованию (представлению).

Во вложении тестовая база (элементарная конфигурация) где видны эти ошибки.
  

test_004.7z ( 2030 KB | Загрузки )
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #760 - 17. Апреля 2012 :: 20:15
Печать  
2 KVIK, не принимается ни один из пунктов.
На 5.0.1. первый у меня лично не подтверждается, а второй никакой ошибки тут нет. Сортировка работает только по полям которые входят в стандартные индексы 1С. А стандартные индексы по ссылочным типам состоят из внутренних идентификаторов. Так что ничего удивительного.
Опять таки, заявляя об ошибке надо показывать текст ошибки, указывать версию, и по возможности выкладывать пример.
Твой пример плохой, хотя бы потому что SQL-ную базу надо выгрузкой выкладывать, ну или самому постараться в DBF конвертнуть и подготовить. Из приведенного примера я заметил только лишний код (вроде создания колонок ТП, они вообще то автоматом создаются в методе "НоваяКолонка"). В остальном этот пример не показателен. Увы ничем пока помочь не могу.
  

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


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #761 - 18. Апреля 2012 :: 05:27
Печать  
vandalsvq писал(а) 17. Апреля 2012 :: 20:15:
На 5.0.1. первый у меня лично не подтверждается


Странно. Именно мой пример работает?

Цитата:
а второй никакой ошибки тут нет. Сортировка работает только по полям которые входят в стандартные индексы 1С. А стандартные индексы по ссылочным типам состоят из внутренних идентификаторов.


Я так и понял, но просматривая исходный текст видел какие-то попытки анализировать "представление" справочников.

vandalsvq писал(а) 17. Апреля 2012 :: 20:15:
Опять таки, заявляя об ошибке надо показывать текст ошибки, указывать версию, и по возможности выкладывать пример.


Вот ошибка:
Выполнить процедуру 'КоманднаяПанельПриНажатии' не удалось. Обратитесь пожалуйста к разработчикам.
ПоставщикДанных.ТабличноеПоле::КоманднаяПанельПриНажатии(Строка ИмяМетода=УдалитьСтроку, СписокЗначений Параметры=) : ПоставщикДанных.ТабличноеПоле::УдалитьСтроку() : ПоставщикДанных.Справочник::УдалитьСтроку() : Не выбран элемент!
СпрВладелец.СнятьПометкуУдаления();
{C:\temp\Поставщик данных 5.01\test\Классы\ПоставщикДанных\ПоставщикДанных.Справочник.ert(2593) }

вирт().УдалитьСтроку();
{C:\temp\Поставщик данных 5.01\test\Классы\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(618) }

ВыполняемыйМодуль.ВыполнитьПроцедуруКонтекста(я(),ИмяМетода,Параметры);
{C:\temp\Поставщик данных 5.01\test\Классы\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(793) }


Цитата:
Твой пример плохой...


Думал так проще воспроизвести ошибку будет  Круглые глаза Прилагаю выгрузку. Ошибка при попытке отмены удаления в отчете "ЖурналДоговоров"  Печаль Ошибка не зависит от типа базы (SQL/DBF). Версия ПоставщикаДанных  5.01. 1с++ 3.2.3.20

Спасибо.
  

test_017.zip ( 7 KB | Загрузки )
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #762 - 18. Апреля 2012 :: 16:18
Печать  
2 KVIK
Попробуй эту версию
  

1Cv7_ext_TF_004.rar ( 1022 KB | Загрузки )

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


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #763 - 18. Апреля 2012 :: 16:49
Печать  
Спасибо, работает. Есть небольшая "особенность" при отмене удаления запрашивает подтверждение, а при пометке на удаление нет.
  
Наверх
 
IP записан
 
PitKZL
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 12. Февраля 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #764 - 24. Апреля 2012 :: 14:41
Печать  
Процедура ПослеСозданияФормы()
     ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
     ПоставщикДанных.ТипЗначений = "ТабличнаяЧасть.Счет";
     ПоставщикДанных.КонтейнерКоманднойПанели = "ИДКоманднаяПанель";
     ПоставщикДанных.КонтейнерТабличногоПоля = "ТПТабличнаяЧасть";
Данные = ПоставщикДанных.Данные;
     Данные.СоздатьКнопкиПоУмолчанию();
     ПоставщикДанных.Обновить();
КонецПроцедуры


У объекта «ПоставщикДанных.ТабличнаяЧасть» не производится выполение формулы табличной части документа.
При изменении количества не пересчитывается сумма по строке.
Что я не так делаю?
  
Наверх
 
IP записан
 
KVIK
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #765 - 27. Апреля 2012 :: 14:49
Печать  
А при работе с отбором задать условия вхождения в группу справочника невозможно (без набивания в список всех элементов группы)?  Озадачен Или я что-то не увидел?
  
Наверх
 
IP записан
 
Kurya
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 24. Мая 2006
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #766 - 04. Мая 2012 :: 15:48
Печать  
Поставщик данных Справочник (версия 5.01)      
Почему-то отбор по полю ЭтоГруппа работает только в "одну" сторону. Т.е. если отбираем только группы - работает, отбираем только элементы - не работает (группы все равно выводятся).
Код
Выбрать все
ОтборГр = ПоставщикДанныхТТ.Данные.Отбор.ЭтоГруппа;
ОтборГр.ИзменятьИспользование = 0;
ОтборГр.Доступность = 0;
ОтборГр.ВидСравнения = ВидыСравнения.Равно;
ОтборГр.Значение = 0;
ОтборГр.Использование = 1;
 

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #767 - 04. Мая 2012 :: 19:17
Печать  
Kurya, обсуждалось выше. Отбор работает, но иерархия выводится всегда в любом случае.
  

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


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 24. Мая 2006
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #768 - 05. Мая 2012 :: 10:23
Печать  
vandalsvq писал(а) 04. Мая 2012 :: 19:17:
Kurya, обсуждалось выше. Отбор работает, но иерархия выводится всегда в любом случае.

Улыбка
Интересно. Т.е. отключить вывод в ТП групп невозможно?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #769 - 05. Мая 2012 :: 14:10
Печать  
Да Улыбка.
Наверное правильнее было бы чтобы если иерархический просмотр отключен, то и условие на "or isfolder=1" тоже отключалось, но увы сейчас я туда не хочу лезть.

Некогда... да и прошлые изменения мне немного боком вышли.
  

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


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #770 - 12. Мая 2012 :: 12:07
Печать  
Дано: справочник, ака регистр сведений.  Все ключевые реквизиты - с отбором. Используется ПоставщикДанных.Справочник
Вопрос: как установить свой порядок сортировки (по нескольким реквизитам). Ну и желательно накладывать внешний фильтр - доп. условие where... Вроде видел это в документации, а сейчас уже третий час читаю - не нахожу...
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #772 - 15. Мая 2012 :: 12:13
Печать  
Поясните как работать с поставщиком журналом документов.
Создал дополнительный журнал, в который закинул все виды документов.
Как добавить колонку:
1. Графа отбора
2. Произвольный реквизит, свой для каждого вида документов
3. Может вообще зарезервировать какую-либо колонку и заполнять ее при выводе строки
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #773 - 15. Мая 2012 :: 13:16
Печать  
[quote author=ANik link=1285520767/765#772 date=1337083984]Поясните как работать с поставщиком журналом документов.
Создал дополнительный журнал, в который закинул все виды документов.
Как добавить колонку:[/quote]
Методом ДобавитьКолонкуДанных. Возможно понадобиться сначала ДобавитьСоединениеДанных. Еще НоваяКолонка, если надо выводить в ТП.
[quote]1. Графа отбора[/quote]
Соединить с таблицей СсылкиДокументов? Поясни на примере, что имеешь в виду. Возможно достаточно таблиц шапок документов.
[quote]2. Произвольный реквизит, свой для каждого вида документов[/quote]
что-то в этом духе?
[code]",15,2,1);[/code]
[quote]3. Может вообще зарезервировать какую-либо колонку и заполнять ее при выводе строки[/quote]
Можно и так. Смотри событие ПриВыводеСтроки. Только тогда не получится использовать ее в отборе.
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #774 - 15. Мая 2012 :: 13:29
Печать  
PitKZL писал(а) 24. Апреля 2012 :: 14:41:
При изменении количества не пересчитывается сумма по строке.
Что я не так делаю?

А что вообще ты делаешь, чтобы она пересчитывалась?
  
Наверх
GTalkICQ  
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #775 - 17. Мая 2012 :: 05:21
Печать  
Так и не получается добавить колонку в журнал. Создал доп.журнал, закинул в него все виды документов, добавляю склад:
ад)","Справочник.МестаХранения",,,1);
Текст ругани:
ПоставщикДанных.Журнал::ДобавитьКолонкуДанных(Строка ИмяКолонки=Склад, Строка Заголовок=Склад, Строка РеквизитЗапроса=COALESCE(ДокРасходнаяНакладная.Склад), Строка ТипВид=Справочник.МестаХранения, Число Длина=0, Число Точность=0, Число ПризнакОтбора=1) : Неверное значение ключа!
СтруктураДанных.Добавить(ВложеннаяСтруктура,ИдентификаторРеквизита);
{D:\1CBase\Torg2012\Classes\ПоставщикДанных\ПоставщикДанных.Журнал.ert(1586) }

ад)","Справочник.МестаХранения",,,1);
{D:\1CBASE\TORG2012\ОБЩИЙЖУРНАЛ.ERT(41)}: ПоставщикДанных.Журнал::ДобавитьКолонкуДанных(Строка ИмяКолонки=Склад, Строка Заголовок=Склад, Строка РеквизитЗапроса=COALESCE(ДокРасходнаяНакладная.Склад), Строка ТипВид=Справочник.МестаХранения, Число Длина=0, Число Точность=0, Число ПризнакОтбора=1) : Неверное значение ключа!
СтруктураДанных.Добавить(ВложеннаяСтруктура,ИдентификаторРеквизита);
{D:\1CBase\Torg2012\Classes\ПоставщикДанных\ПоставщикДанных.Журнал.ert(1586) }

Возникла ошибка в оригинальном обработчике события ПослеСозданияФормы
  
Наверх
 
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #776 - 17. Мая 2012 :: 06:56
Печать  
В общем - графу если создать, то метод "НоваяКолонка" работает, а "ДобавитьКолонкуДанных" - не получается.
  
Наверх
 
IP записан
 
Kurya
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 24. Мая 2006
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #777 - 17. Мая 2012 :: 10:13
Печать  
У меня так:
     
Код
Выбрать все
Данные.ДобавитьКолонкуДанных("АдресТорговойТочки2","Адрес ТТ к",,,1);
Данные.НоваяКолонка("АдресТорговойТочки2");
 


У тебя:
1. Попробуй: ДокРасходнаяНакладная заменить на $ДокРасходнаяНакладная
2. Документ в конфигураторе называется "РасходнаяНакладная"?
3. Реквизит Склад в документе есть?
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #778 - 17. Мая 2012 :: 10:34
Печать  
ANik писал(а) 17. Мая 2012 :: 05:21:
ад)","Справочник.МестаХранения",,,1);

COALESCE должна содержать как минимум 2 параметра. По крайней мере для 1sqlite. Почитай что это такое http://msdn.microsoft.com/ru-ru/library/ms190349(v=sql.100). Можно использовать для выборки данных в колонку из разных документов. Не обязательно.
Проверь, что сказал Kurya. У меня работает и без $. Остальное абсолютно правильно.
На вскидку не помню есть ли разница, но, возможно, проблема связана с видом журнала. Попробуй для начала создать форму для "Обычного" журнала.
  
Наверх
GTalkICQ  
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #779 - 18. Мая 2012 :: 06:29
Печать  
Пробовал в обычном журнале.  и с "$", и без. 2 параметра через запятую тоже делал.
В общем жесть. 1С++ 3.2.3.17 FormEx 2.05.108
Поставщик данных свежак. SQL 2005.
Время, отведенное на эксперименты, скончалось.
Через графы вроде работает. Скажите - создание кучи дополнительных журналов с кучей граф не повлияет на производительность?
  
Наверх
 
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #780 - 18. Мая 2012 :: 07:32
Печать  
Создал пустую тестовую базу с 3 видами справочников и доков - заработало. Видать перегрелось то место, где должны мозги находиться. Спасибо за помощь!
  
Наверх
 
IP записан
 
Kurya
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 24. Мая 2006
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #781 - 18. Мая 2012 :: 08:56
Печать  
Подмогните с соединением.
Сделал журнал Т_РасходныхНакладных, все работает нормально.
Захотелось что бы в журнале показывалась задолженность понакладной.
делаю соединение
Код
Выбрать все
ТекстСоединения = "left join
|	$РегистрОстатки.ВзаиморасчетыПокупателей(,,(КредДокумент),(Долг),) as vt_rg_total
|		on $ТекущийОбъект.ТекущийДокумент = vt_rg_total.КредДокумент
|";
Данные.ДобавитьСоединениеДанных("ДолгНакл",ТекстСоединения);
Данные.ДобавитьКолонкуДанных("ДолгНакл","Долг Накл.","ISNULL(vt_rg_total.ДолгОстаток,0)","Число",15,2,1);
Данные.НоваяКолонка("ДолгНакл");
 



Ошибок нет, но везде 0.00
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #782 - 18. Мая 2012 :: 09:12
Печать  
Kurya писал(а) 18. Мая 2012 :: 08:56:
Ошибок нет, но везде 0.00

У тебя наверняка тип измерения документ неопределенного вида.
Соединяй по $ТекущийОбъект.ВидДокумента||$ТекущийОбъект.ТекущийДокумент
  
Наверх
GTalkICQ  
IP записан
 
Kurya
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 24. Мая 2006
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #783 - 18. Мая 2012 :: 09:23
Печать  
Kalen писал(а) 18. Мая 2012 :: 09:12:
Kurya писал(а) 18. Мая 2012 :: 08:56:
Ошибок нет, но везде 0.00

У тебя наверняка тип измерения документ неопределенного вида.
Соединяй по $ТекущийОбъект.ВидДокумента||$ТекущийОбъект.ТекущийДокумент

Ошибка
Conversion failed when converting the varchar value '   0     0   ' to data type int.
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #784 - 18. Мая 2012 :: 09:31
Печать  
Kurya писал(а) 18. Мая 2012 :: 08:56:
Подмогните с соединением.
Захотелось что бы в журнале показывалась задолженность понакладной.
делаю соединение
...

Возможно, соединение с регистром будет довольно сильно тормозить. Я у себя пробовал - переделал на подзапрос. Правда тогда нельзя отбор делать по этой колонке.
Если бы можно было использовать соединение только когда колонка долга используется, можно было бы и через соединение сделать. К сожалению, существует только оптимизация полей запроса. Оптимизации соединений нету как ни странно Печаль
  
Наверх
GTalkICQ  
IP записан
 
mirvel
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 55
Зарегистрирован: 28. Августа 2010
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #785 - 18. Мая 2012 :: 09:40
Печать  
есть ли Onmouseover в поставщике данных табличного поля ВК 1cpp??? ребят может вы в курсе, если метод  наведение мыши над строчкой табличного поля в поставщикеданных????

Задача такая, чтобы при наведении мышкой на строчку табличного поля появлялась картинка. А щас у меня картинка вызывается по кнопке на форме... неудобно
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #786 - 18. Мая 2012 :: 10:06
Печать  
mirvel писал(а) 18. Мая 2012 :: 09:40:
Задача такая, чтобы при наведении мышкой на строчку табличного поля появлялась картинка

Насчет Onmouseover не знаю. Но мне кажется можно приспособить ПриВыводеПодсказки.
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #787 - 18. Мая 2012 :: 10:52
Печать  
Kurya писал(а) 18. Мая 2012 :: 09:23:
converting to data type int.

Не въезжаю откуда у тебя взялось преобразование типов  Озадачен
Цитата:
varchar value '   0     0   '

У тебя действительно встречается пустой КредДокумент в итогах? Может это ошибка из другой оперы?
Текст сформированного запроса покажи.
  
Наверх
GTalkICQ  
IP записан
 
Kurya
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 24. Мая 2006
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #788 - 18. Мая 2012 :: 11:27
Печать  
Откуда берется преобразование типов и я не пойму. Пустой документ действительно есть. (Смотрел в SQL Management Studio).
Но кажись дело не в нем. Пробовал поменять регистр на другой (у меня два регистра взаиморасчетов) в котором КредДокумент является документом определенного вида, причем вид документа тот же что и в журнале. Пофиг, или нули или ошибка преобразования типов (но не пустого документа, во втором регистре пустых нет).
  
Наверх
 
IP записан
 
Kurya
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 24. Мая 2006
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #789 - 18. Мая 2012 :: 11:43
Печать  
Кажется разобрался.
По второму регистру заработало (там где КредДокумент определенного вида). А по первому и не должно работать. т.к. там долги по накладным не ведутся.
  
Наверх
 
IP записан
 
mirvel
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 55
Зарегистрирован: 28. Августа 2010
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #790 - 18. Мая 2012 :: 11:43
Печать  
Kalen писал(а) 18. Мая 2012 :: 10:06:
mirvel писал(а) 18. Мая 2012 :: 09:40:
Задача такая, чтобы при наведении мышкой на строчку табличного поля появлялась картинка

Насчет Onmouseover не знаю. Но мне кажется можно приспособить ПриВыводеПодсказки.

ПРивет... что то я того метода ни в модуле табличноеполе, ни в модуле табличнойчасти не нашел....
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #791 - 18. Мая 2012 :: 11:52
Печать  
mirvel писал(а) 18. Мая 2012 :: 11:43:
что то я того метода ни в модуле табличноеполе, ни в модуле табличнойчасти не нашел....

Это событие базового класса http://www.1cpp.ru/docum/icpp/html/TableField.html#onshowhint
  
Наверх
GTalkICQ  
IP записан
 
al_zzz
Senior Member
****
Отсутствует


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #792 - 21. Мая 2012 :: 06:27
Печать  
Туплю:
Код
Выбрать все
//************************************************
Процедура КТПередОкончаниемРедактирования(ТП, Колонка, ТипРегиона, Значение, ФСО)
	Если ТипРегиона.Имя = "Фирма" Тогда
		СпрДог = СоздатьОбъект("Справочник.Договоры");
		Договор = ДоговорПоФирме(ТП.ТекущиеДанные.Фирма);
		Если ДоговорПоФирме(ТП.ТекущиеДанные.Фирма) <> 0 Тогда
			ПоставщикДанных.Данные.ТекущиеДанные.Наименование = "Дополнительное соглашение №"+СпрДог.Код+" по договору "+Договор.Наименование;
			//ТП.ТекущиеДанные.Наименование =
			//СпрДог.НайтиЭлемент(ТП.ТекущиеДанные.ТекущийЭлемент);
			//СпрДог.Наименование = "Дополнительное соглашение №"+СпрДог.Код+" по договору "+Договор.Наименование;
			//СпрДог.Договор	= Договор;
			//СпрДог.Записать();
		КонецЕсли;
		ПоставщикДанных.Обновить();
	КонецЕсли;
КонецПроцедуры 


Как изменить значение колонке ПД.Справочник "Наименование" при окончании редактирования значения в колонке "Фирма"?
  

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


1C++ ->

Сообщений: 361
Местоположение: Барнаул
Зарегистрирован: 05. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #793 - 23. Мая 2012 :: 03:20
Печать  
Как в ПоставщикДанных.Справочник  запретить интерактивный отбор пользователям? То есть, чтоб всегда был установлен программно заданный отбор.
Как изменить реквизит справочника в событии "ПередУдалением"?
« Последняя редакция: 23. Мая 2012 :: 04:55 - al_zzz »  

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


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #794 - 24. Мая 2012 :: 13:29
Печать  
На последнем релизе ПД вот такая штука случилась:

Есть ФормаЭлемента Спр.Номенклатура в ней вывод Цен:

Код
Выбрать все
Процедура ПослеСозданияФормы()
        ПоставщикДанныхЦены = СоздатьОбъект("ПоставщикДанных");
	ПоставщикДанныхЦены.БиблиотекаКартинок = глПД_БиблиотекаКартинок;
	ПоставщикДанныхЦены.ТипЗначений = "Справочник.Цены";
...
	ДанныеСпрЦены = ПоставщикДанныхЦены.Данные; //Объект-расширение!!!
	ДанныеСпрЦены.Владелец = ТекущийЭлемент();
...
КонецПроцедуры
 




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

	Если ДанныеСтроки.ТипЦен.Рассчитывается = 1 Тогда
		ЦенаЦены=0;

		ОформлениеСтроки.Ячейки.Цена.УстановитьТекст(СокрЛП(Формат(ЦенаЦены,"Ч-15.3, ")));
	Иначе
		ЦенаЦены=ДанныеСтроки.Цена;
	КонецЕсли;

	Если ДанныеСтроки.ТипЦен = Константа.ОсновнаяЦенаПриобретения Тогда
		лЦенаСС = ДанныеСтроки.Цена;
		ОформлениеСтроки.ЦветФона = глПД_ПалитраЦветов.БледноБирюзовый;
		ОформлениеСтроки.Ячейки.Наценка.УстановитьТекст("ЦЕНА С/С");
	КонецЕсли;

	лПериодическийЦена.ИспользоватьОбъект("Цена",ДанныеСтроки.ТекущийЭлемент);
	Если лПериодическийЦена.НайтиЗначение(ИспользоватьДату(),-1) = 1 Тогда
		таЗнач));
	КонецЕсли;


	Если (лЦенаСС>0) и (ДанныеСтроки.ТипЦен <> Константа.ОсновнаяЦенаПриобретения) Тогда
		//посчитаем % наценки
		ПроцНаценки = ЦенаЦены/лЦенаСС*100-100;
		ОформлениеСтроки.Ячейки.Наценка.УстановитьТекст(Формат(ПроцНаценки,"Ч-6.2. ")+" %");
	КонецЕсли;

КонецПроцедуры // КонтейнерТПЦеныПриВыводеСтроки 



Так вот после обновления при открытии формы вываливается ошибка:
Код
Выбрать все
ЦенаЦены=ДанныеСтроки.Цена;
{Справочник.Номенклатура.Форма.Модуль(911)}: Поле агрегатного объекта не обнаружено (Цена)
 



Посмотрел в отладчике - При первом срабатывании Процедура КонтейнерТПЦеныПриВыводеСтроки(...) у ДанныеСтроки нет реквизитов справочника ("Цена" и т.д.), хотя в дальнейшем все Ок. Где засада?

P.S. меняю ПД на предыдущую версию - все становится Ок
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #795 - 25. Мая 2012 :: 08:59
Печать  
Вероятнее всего первое срабатывание вызывается когда колонки еще не созданы. Варианты выхода попробовать цену засунуть в обязательные колонки, или делать "ТабличноеПоле.Колонки.Найти(ИмяКолонки) >= 0" и тогда "ДанныеСтроки.Цена".
  

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


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #796 - 25. Мая 2012 :: 09:43
Печать  
vandalsvq писал(а) 25. Мая 2012 :: 08:59:
Вероятнее всего первое срабатывание вызывается когда колонки еще не созданы.


А почему на предыдущей версии ПД работало?

vandalsvq писал(а) 25. Мая 2012 :: 08:59:
Варианты выхода попробовать цену засунуть в обязательные колонки, или делать "ТабличноеПоле.Колонки.Найти(ИмяКолонки) >= 0" и тогда "ДанныеСтроки.Цена".


Обязательные колонки - имеешь ввиду "УстановитьПоляЗапроса"?

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


у ТП.Колонки нет метода "Найти" (( вобщем, вот так извратился:
Код
Выбрать все
	Попытка
		ЦенаЦены=ДанныеСтроки.Цена;
		ОформлениеСтроки.Ячейки.Наценка.УстановитьТекст("ЦЕНА С/С");
	Исключение
		Возврат;
	КонецПопытки; 

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #797 - 25. Мая 2012 :: 13:54
Печать  
Вероятнее всего связано с какими нибудь внутренними "незадокументированными" изменениями Улыбка
С методом "Найти" я тебя попутал, извини. Используй метод "Индекс".
Кстати если не ошибаюсь в список колонок метода "УстановитьПоляЗапроса" передается строка. Хотя может быть и СЗ и еще что Улыбка мало ли что я там понаписал Улыбка.
А почему ты сразу не добавить колонку данных с текстом и ее не выведешь вместо того что тебе надо? Я вот при выводе строки вообще редко использую.
  

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


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #798 - 25. Мая 2012 :: 14:11
Печать  
Пишу:
Код
Выбрать все
ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
ПоставщикДанных.ТипЗначений = "Справочник.Клиенты";
ПоставщикДанных.КонтейнерКоманднойПанели = "ИДКоманднаяПанель";
ПоставщикДанных.КонтейнерТабличногоПоля = "СправочникСписокКлиенты";

ПоставщикДанных.Обновить(); 


При открытии формы выдает: Цитата:
ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=Справочник.Клиенты) : ПоставщикДанных.Справочник::ПриЗаписи_ВидСправочника(Строка Параметр=Клиенты) : ПоставщикДанных.ТабличноеПоле::Обновить() : ПоставщикДанных.Справочник::УстановитьПоставщикаДанных() : no such column: sc46.PARENTEXT
ПоставщикДанных.УстановитьТекстЗапроса(ТекстЗапроса,"[КлючПорядка]","[ТекущийЭлемент :Справочник."+ВидСправочника+"]");
{D:\db\Рабочая\Классы1С++\ПоставщикДанных\ПоставщикДанных.Справочник.ert(1077) }    вирт().Обновить();
}    ТабличноеПоле.Обновить();
{D:\db\Рабочая\Классы1С++\ПоставщикДанных\ПоставщикДанных.Справочник.ert(1363) }    ПоставщикДанных.ВидСправочника = Сред(ТипЗначений,12);
{D:\db\Рабочая\Классы1С++\ПоставщикДанных\ПоставщикДанных.ert(97) }

и не инициализируется.

Если заменить на:
Код
Выбрать все
ПоставщикДанных.ТипЗначений = "Справочник.Товары"; 

то все нормально.

Оба справочника НЕ подчиненные.
Куда копать?
« Последняя редакция: 25. Мая 2012 :: 16:15 - Kalen »  
Наверх
GTalkICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

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


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #800 - 25. Мая 2012 :: 15:29
Печать  
Я привел буквально весь код. Никаких отборов. Никаких владельцев. Повторяю: справочник НЕ подчиненный.
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #801 - 25. Мая 2012 :: 15:57
Печать  
при этом
Цитата:
ТекстЗапроса = "select      (case when sc46.isfolder = 1 then 0 else 2 end + case when sc46.ismark = '*' then 1 else 0 end) as [Пиктограмма]      ,case when sc46.isfolder = 1 then 1 else 0 end as ЭтоГруппа      ,case when sc46.ismark = '*' then 1 else 0 end as [ПометкаУдаления]"

Откуда берется PARENTEXT? Ниииииче не понимаю ©   Злой
  
Наверх
GTalkICQ  
IP записан
 
ReEnter58
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 13
Зарегистрирован: 25. Марта 2011
Итог по колонке переодического реквизита в табличном поле
Ответ #802 - 31. Мая 2012 :: 14:24
Печать  
Табличное поле отображает подчиненный справочник по владельцу. В отображаемом справочнике реквизит сумма - переодический. При установке флага Итога по колонке Сумма происходит ошибка "Cannot perform an aggregate function on an expression containing an aggregate or a subquery." Помогите побороть.

ПДЗП = СоздатьОбъект("ПоставщикДанных");
     ПДЗП.ТипЗначений = "Справочник.ЗарплатаНом";
     ПДЗП.КонтейнерКоманднойПанели = "КПЗП";
     ПДЗП.КонтейнерТабличногоПоля = "ТПЗП";
    
     Данные4 = ПДЗП.Данные;
     Данные4.СоздатьКнопкиПоУмолчанию();
     Данные4.РежимВыбора         = 0;
     Данные4.РежимОтладки        = 0;
     Данные4.ПросмотрПоВладельцу = 1;
     Данные4.Владелец            = ТекущийЭлемент();
    
     Данные4.НоваяКолонка("Работа",,1);
     Данные4.НоваяКолонка("Сущность");
     Данные4.НоваяКолонка("Коэффициент");
     Данные4.НоваяКолонка("Сумма",0);

При установке 1 вместо 0 возникает данная ошибка
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #803 - 01. Июня 2012 :: 16:31
Печать  
ReEnter58, советую сделать не добавлением поля с данным реквизитом, а добавлением соединения с ВТ "СрезПоследних" с данным реквизитом, + поля данных "ISNULL(СрезПоследних.Сумма, 0)", тогда должно взлететь.
  

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


1C++ rocks!

Сообщений: 11
Зарегистрирован: 03. Июня 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #804 - 03. Июня 2012 :: 13:35
Печать  
Здравствуйте, есть несколько проблем, хотелось бы найти их решения:

1. Прямой запрос - если в виртуальную таблицу остатков передать большой массив (например, массив товаров), то возвращается не совсем ожидаемый результат. Особенно это видно, если добавить условие НЕ - запрос должен вернуть пустую таблицу, но он возвращает некоторые "товары". Если этот же массив передать в условие ГДЕ, то результат запроса действительно пустой. Массив "товаров" состоял из 4800 записей. Если нужна демонстрационная база - могу подготовить ее, выдать через 1-3 недели.

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

3. Не знаю, есть или нет, но: можно ли для определенной колонки табличного поля устанавливать свойство только просмотр, чтобы пользователь не мог ее корректировать...., т.е вся колонка не редактируется, а другие редактируются.

4. У числовых полей в табличном поле пишется нулевой итог. Если не хочу считать итог, можно установить 0 в функции НоваяКолонка, но нулевой итог всё-равно отображается - как можно избавиться от 0 в подвале?
  
Наверх
 
IP записан
 
EvgeniuXP
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 03. Июня 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #805 - 03. Июня 2012 :: 17:26
Печать  
3-ий пункт вроде как нашел реализовать:

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

написал процедуру:

Код
Выбрать все
Процедура ТабличноеПолеПередНачаломИзменения(ФСО)
	ФСО=1;
КонецФункции 



также попробовал проверить метод: ПередНачаломДобавления, запретить добавление новых строк, написал:

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



строку всё-равно интерактивно можно добавить....

10 минут спустя:

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

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



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #806 - 04. Июня 2012 :: 04:34
Печать  
EvgeniuXP писал(а) 03. Июня 2012 :: 17:26:
нашел, помогли гуру, два параметра необходимо передавать в первом случае, во втором - три - ошибка в документации Печаль исправьте пожалуйста.

Поставщик данных опирается на "Табличное поле" и, как следствие, несет за собой его условия:
Цитата:
Табличное поле может генерировать события в виде вызова процедур модуля формы, на которой оно расположено, имена которых должны быть составлены из имени реквизита формы и имени события. Каждое событие, кроме описанных параметров, всегда имеет первый параметр, имеющий значение объекта - источника событий (само табличное поле).

В документацию это вносится именно в таком виде по той причине, что если ты сделаешь свой класс, наследник, то там этого первого параметра НЕ будет.
На счет "больших" массивов, непонятно - как передаешь? Надеюсь - уложив во временную таблицу?
  
Наверх
ICQ  
IP записан
 
EvgeniuXP
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 03. Июня 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #807 - 04. Июня 2012 :: 15:55
Печать  
укладываю вот так:

Код
Выбрать все
СЗТовары=СоздатьОбъект("СписокЗначений");

СпрТовар=СоздатьОбъект("Справочник.Товары");
СпрТовар.ВыбратьЭлементы();
Пока СпрТовар.ПолучитьЭлемент()=1 Цикл
    Если СпрТовар.ЭтоГруппа()=0 Тогда    
	  СЗТовары.ДобавитьЗначение(СпрТовар.ТекущийЭлемент());
    КонецЕсли;
КонецЦикла;

Запрос.УложитьСписокЗначений(СЗТовары,"#ВыбТовары");
 


на 4. пункт решение нашел: оформление строки - может кому полезно будет.

Еще один вопрос по поводу привязок: есть два класса: 1) "Общие.Форма.Привязки" и "УправлениеФормой.ПривязкаЭлементов", в первом случае есть очень хорошая функция "МинимальныеРазмеры", где можно указать, например, для табличной части ее минимальный размер и соответственно кнопки лежащие справа от нее не улетят ввверх, во втором классе этого нет Печаль. Но первый класс. глючит... если открыть другую форму и раскрыть на весь экран, а потом открыть эту форму с данной привязкой, таблица становится шире экрана и к исходному виду не возвращается.... если же все окна закрыть и снова открыть форму с таблицей, то всё нормально отображает... какой класс лучше использовать? какой из них развивается? и можно ли во второй класс добавить функцию "МинимальныеРазмеры", чтобы кнопки не улетали вверх?

второй тоже глючит, когда максимально развернутое окно становится обычным окном.... FormEx 2.05.107....

P.S. Спасибо!
« Последняя редакция: 05. Июня 2012 :: 14:47 - EvgeniuXP »  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #808 - 05. Июня 2012 :: 09:50
Печать  
Ты весь справочник товаров укладываешь??? Зачем???
1. Если у тебя есть заполненный список - просто добавляешь через
Код
Выбрать все
Запрос.УложитьСписокЗначений(СЗТовары,"#ВыбТовары","Товары"); 


2. Если хочешь только элементы, то проще в запросе добавить
Код
Выбрать все
LEFT JOIN $Справочник.Товары SS ON (соединение по ID) AND (SS.IsFolder=2) 


3. Даже если хочешь использовать свою врем. таблицу, проще
Код
Выбрать все
SELECT ID as Val INTO #ВыбТовары FROM $Справочник.Товары WHERE IsFolder=2 

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


1C++ rocks!

Сообщений: 11
Зарегистрирован: 03. Июня 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #809 - 05. Июня 2012 :: 14:45
Печать  
Уложил весь - чтобы проверить, правильно ли запрос отработает такое количество товаров, как говорится, доверяй, но проверяй. Но по своей задаче могу сказать: пользователь выбирает некие группы и все товары которые в нее входят, нужно передать в запрос и посмотреть остатки. Вдруг пользователь выберет все группы верхнего уровня и несколько раз сформирует отчет - и увидит, что отчет получается разный - будут вопросы к разработчику. Поэтому я должен знать - стабильно ли работает, поэтому и проверил.

Еще проблема, упорядочить по возрастанию ИндексированнуюТаблицу... в методе Сортировать можно сортировать по убыванию и по внутреннему представлению объекта.... а по возрастанию (тип Число)?...
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #810 - 05. Июня 2012 :: 16:29
Печать  
EvgeniuXP писал(а) 05. Июня 2012 :: 14:45:
Еще проблема, упорядочить по возрастанию ИндексированнуюТаблицу... в методе Сортировать можно сортировать по убыванию и по внутреннему представлению объекта.... а по возрастанию (тип Число)?...

Цитата:
Если перед именем колонки стоит символ '-', то сортировка осуществляется в обратном порядке
Попробуй подумать хотябы методом исключения - а что если ничего не стоит?

На всякий случай, если это в продолжение предыдущего вопроса, напоминаю, что упорядочить выборку можно в самом запросе.
  
Наверх
GTalkICQ  
IP записан
 
big_ooo
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 17
Зарегистрирован: 08. Сентября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #811 - 05. Июня 2012 :: 18:25
Печать  
Подскажите пожалуйста как для поставщика данных "Документ." сделать фильтрацию по реквизиту по вхождению в группу. Задача есть список документов РасходныеНакладные у которых есть реквизит "Склад" Надо чтобы отобрались все расходные по группе из справочника "Склады"

я пытаюсь сделать вот так:
Код
Выбрать все
ДанныеПП.Отбор.Склад.ВидСравнения = ВидыСравнения.Равно;
ДанныеПП.Отбор.Склад.Значение	= ВыбСкладПП;
ДанныеПП.Отбор.Склад.Использование = 1;
 



и ничего не получается!
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #812 - 06. Июня 2012 :: 06:03
Печать  
big_ooo писал(а) 05. Июня 2012 :: 18:25:
... Надо чтобы отобрались все расходные по группе из справочника "Склады"

я пытаюсь сделать вот так:
Код
Выбрать все
ДанныеПП.Отбор.Склад.ВидСравнения = ВидыСравнения.Равно;
 



и ничего не получается!

Насколько я знаю, ВидыСравнения.ВГруппе только планируется. А Равно и не должно работать. У тебя ведь нет накладных, где склад = указанной группе. Не так ли?
Пока только один выход - "ВСписке".
  
Наверх
GTalkICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #813 - 06. Июня 2012 :: 06:48
Печать  
А не удобнее - Уложить список во временную таблицу (одной командой), и в запросе написать джойн к этой таблице (еще пара строк кода)?
  
Наверх
ICQ  
IP записан
 
big_ooo
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 17
Зарегистрирован: 08. Сентября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #814 - 06. Июня 2012 :: 07:19
Печать  
Salimbek писал(а) 06. Июня 2012 :: 06:48:
А не удобнее - Уложить список во временную таблицу (одной командой), и в запросе написать джойн к этой таблице (еще пара строк кода)?

я так пытался, делал вот так:
Код
Выбрать все
);
ТекстСоединенияПП="inner join #Склады on  $ТекущийОбъект.Склад = #Склады.Val";
ДанныеПП.УдалитьСоединениеДанных("Склады");
ДанныеПП.ДобавитьСоединениеДанных("Склады",ТекстСоединенияПП); 



но при таком коде выдает ошибку,я подозреваю что это потому что склад реквизит документа . Если можно можете привести пример такого джойна.
  
Наверх
 
IP записан
 
big_ooo
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 17
Зарегистрирован: 08. Сентября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #815 - 06. Июня 2012 :: 08:44
Печать  
Все таки решил вопрос . Вот код может кому поможет - отбор документов по группе складов (база DBF)
Код
Выбрать все
);
ТекстСоединенияПП="inner join #Склады on  $ШапкаДокумента.Склад = #Склады.Val";
ДанныеПП.УдалитьСоединениеДанных("Склады");
ДанныеПП.ДобавитьСоединениеДанных("Склады",ТекстСоединенияПП);
 

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


I Love YaBB 2!

Сообщений: 17
Зарегистрирован: 08. Сентября 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #816 - 06. Июня 2012 :: 15:12
Печать  
Добрые люди подскажите еще как работать с ПД ИндексированнаяТаблица! Задача такая необходимо чтобы отобранные товары попадали в табличное поле. Делаю инициализацию :

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


ТабличноеПоле = ПоставщикДанныхТМЦПП.ТабличноеПоле;
ТабличноеПоле.СтильРамки = 1;
ТабличноеПоле.СтильЗаголовков = 1;
ТабличноеПоле.ТаймаутОбновления=0;

ДанныеТМЦПП = ПоставщикДанныхТМЦПП.Данные;
ДанныеТМЦПП.СоздатьКнопкиПоУмолчанию();
ДанныеТМЦПП.РежимВыбора = Форма.РежимВыбора();
ДанныеТМЦПП.АвтоОбновление = 0;
ДанныеТМЦПП.ИндексированнаяТаблица=тВыбранныеТМЦ;

ДанныеТМЦПП.ЗаполнитьИзОбъекта(тВыбранныеТМЦ);
ТабличноеПоле.СтандартныйБыстрыйПоиск = 1;
ТабличноеПоле.ПозиционныйБыстрыйПоиск = 0;


ТабличноеПоле.ВосстановитьПозициюКолонок();
ПоставщикДанныхТМЦПП.Обновить();

КонецПроцедуры // УстановитьПоставщикаДанных
 



при открытии формы все нормльно показывается
таблица создается вот так
Код
Выбрать все
 тВыбранныеТМЦ=СоздатьОбъект("ТаблицаЗначений");  
 тВыбранныеТМЦ.НоваяКолонка("ТМЦ","Справочник.ТМЦ");
 тВыбранныеТМЦ.НоваяКолонка("Склад","Справочник.МестаХранения");
 тВыбранныеТМЦ.НоваяКолонка("Количество","Число",15,3);    
тВыбранныеТМЦ.НоваяКолонка("ЦенаБезНДС","Число",12,4);    
тВыбранныеТМЦ.НоваяКолонка("ЦенаСНДС","Число",12,4);  
тВыбранныеТМЦ.НоваяКолонка("СуммаБезНДС","Число",15,3);
тВыбранныеТМЦ.НоваяКолонка("СуммаСНДС","Число",15,3);  
 тВыбранныеТМЦ.НоваяСтрока();
 тВыбранныеТМЦ.НоваяСтрока();
 тВыбранныеТМЦ.НоваяСтрока();
 



а вот когда в событии выбора я загружаю данные вываливается куча ошибок
Код
Выбрать все
Процедура ТПТМЦПриВыбореЗначения(выбЗначение)
	тВыбранныеТМЦ.НоваяСтрока();
	тВыбранныеТМЦ.ТМЦ=выбЗначение.ТекущаяСтрока;
	ДанныеТМЦПП.ЗаполнитьИзОбъекта(тВыбранныеТМЦ);
	ДанныеТМЦПП.Обновить();
КонецПроцедуры //  
 



ошибки вот такие:
ПоставщикДанных.ИндексированнаяТаблица::ДобавитьДанныеОКолонке(Строка Идентификатор=Склад, ОписаниеТипов ОписаниеТипов=, Строка Заголовок=Склад, Число ШиринаКолонки=17, Число Итоги=0, Число ОтметкаНезаполненного=0) : Неверно указан номер строки!  Номер строки = 1, всего строк = 0
Колонка = Колонки.Добавить(Идентификатор);
t(179) }

аЗначений ТаблицаЗначений=) : ПоставщикДанных.ИндексированнаяТаблица::ДобавитьДанныеОКолонке(Строка Идентификатор=Склад, ОписаниеТипов ОписаниеТипов=, Строка Заголовок=Склад, Число ШиринаКолонки=17, Число Итоги=0, Число ОтметкаНезаполненного=0) : Неверно указан номер строки!  Номер строки = 1, всего строк = 0
Колонка = Колонки.Добавить(Идентификатор);
t(179) }

я().НоваяКолонка(ИдентификаторКолонки,ТипВид,Длина,Точность,Заголовок,Ширина);
t(560) }

ДанныеТМЦПП.ЗаполнитьИзОбъекта(тВыбранныеТМЦ);
{C:\EXTFORMS\РАБОЧЕЕМЕСТОМЕНЕДЖЕРА.ERT(1285)}: аЗначений ТаблицаЗначений=) : ПоставщикДанных.ИндексированнаяТаблица::ДобавитьДанныеОКолонке(Строка Идентификатор=Склад, ОписаниеТипов ОписаниеТипов=, Строка Заголовок=Склад, Число ШиринаКолонки=17, Число Итоги=0, Число ОтметкаНезаполненного=0) : Неверно указан номер строки!  Номер строки = 1, всего строк = 0
Колонка = Колонки.Добавить(Идентификатор);
t(179) }

я().НоваяКолонка(ИдентификаторКолонки,ТипВид,Длина,Точность,Заголовок,Ширина);
t(560) }


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


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #817 - 06. Июня 2012 :: 17:52
Печать  
подскажите почему не взлетает на windows 7 х64
офис есть, но пишет ошибку:
Код
Выбрать все
ПоставщикДанных.КоманднаяПанель::УстановитьНаборПиктограмм(Картинка Пиктограммы=, Число Ширина=16, Число Высота=16, Число Количество=26) : Неудачная попытка создания объекта
КартинкиПанелиУправления = СоздатьОбъект("MSComctlLib.ImageListCtrl");
вщикДанных.КоманднаяПанель.ert(350) }

ПоставщикДанных.ТабличноеПоле::Конструктор() : ПоставщикДанных.КоманднаяПанель::УстановитьНаборПиктограмм(Картинка Пиктограммы=, Число Ширина=16, Число Высота=16, Число Количество=26) : Неудачная попытка создания объекта
КартинкиПанелиУправления = СоздатьОбъект("MSComctlLib.ImageListCtrl");
вщикДанных.КоманднаяПанель.ert(350) }

6);
вщикДанных.ТабличноеПоле.ert(89) }

ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=Справочник.сфМагазины) : ПоставщикДанных.ТабличноеПоле::Конструктор() : ПоставщикДанных.КоманднаяПанель::УстановитьНаборПиктограмм(Картинка Пиктограммы=, Число Ширина=16, Число Высота=16, Число Количество=26) : Неудачная попытка создания объекта
КартинкиПанелиУправления = СоздатьОбъект("MSComctlLib.ImageListCtrl");
вщикДанных.КоманднаяПанель.ert(350) }

6);
вщикДанных.ТабличноеПоле.ert(89) }

ПоставщикДанных = СоздатьОбъект("ПоставщикДанных.Справочник");
вщикДанных.ert(94) }

ПоставщикДанныхМногострочнаяЧасть.ТипЗначений = ТипДанных + "." + ВидДанных;
{Обработка.СправочникСписок.Форма.Модуль(10)}: ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=Справочник.сфМагазины) : ПоставщикДанных.ТабличноеПоле::Конструктор() : ПоставщикДанных.КоманднаяПанель::УстановитьНаборПиктограмм(Картинка Пиктограммы=, Число Ширина=16, Число Высота=16, Число Количество=26) : Неудачная попытка создания объекта
КартинкиПанелиУправления = СоздатьОбъект("MSComctlLib.ImageListCtrl");
вщикДанных.КоманднаяПанель.ert(350) }

6);
вщикДанных.ТабличноеПоле.ert(89) }

ПоставщикДанных = СоздатьОбъект("ПоставщикДанных.Справочник");
вщикДанных.ert(94) }
 


куда рыть?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #818 - 06. Июня 2012 :: 17:58
Печать  
Сам недавно переехал на Win7 x64, но 7.7 даже не ставил еще. Все никак не могу найти время на "подвиг".
Есть подозрение что офис надо бы x86, ну или наоборот x64. Честно признаться пока не готов смотреть или что-то дельное советовать.
В принципе это вообще счас класса касается. Вы уж как нибудь тут пока сами, а я приду чуть позже, может через недельку? Улыбка

Пы.сы. те кто хочет решить свою проблему готов рассмотреть за разумную компенсацию.
  

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


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #819 - 06. Июня 2012 :: 18:06
Печать  
vandalsvq писал(а) 06. Июня 2012 :: 17:58:
Сам недавно переехал на Win7 x64, но 7.7 даже не ставил еще. Все никак не могу найти время на "подвиг".
Есть подозрение что офис надо бы x86, ну или наоборот x64. Честно признаться пока не готов смотреть или что-то дельное советовать.
В принципе это вообще счас класса касается. Вы уж как нибудь тут пока сами, а я приду чуть позже, может через недельку? Улыбка

Пы.сы. те кто хочет решить свою проблему готов рассмотреть за разумную компенсацию.

понятно. офис у меня 2010 х64. так что щас попробую на х86
хотя у меня на серваке 2008 r2 с офисом 2007 (как раз х86) взлетает нормально
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #820 - 06. Июня 2012 :: 19:40
Печать  
и так. офис 2010 sp1 х86 х64 не дают нормального полета классу поставщик данных. Завтра попробую 2007
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #821 - 07. Июня 2012 :: 06:03
Печать  
Попробуй лучше mscomctl.ocx найти. Например, здесь. Лицензия, если спросит,

[HKCR\Licenses\ED4B87C4-9F76-11d1-8BF7-0000F8754DA1]
@ = "knlggnmntgggrninthpgmnngrhqhnnjnslsh"
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #822 - 07. Июня 2012 :: 06:51
Печать  
berezdetsky писал(а) 07. Июня 2012 :: 06:03:
Попробуй лучше mscomctl.ocx найти. Например, здесь. Лицензия, если спросит,

[HKCR\Licenses\ED4B87C4-9F76-11d1-8BF7-0000F8754DA1]
@ = "knlggnmntgggrninthpgmnngrhqhnnjnslsh"

Спасибо попробую.
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #823 - 07. Июня 2012 :: 06:54
Печать  
у кого работает класс с вложенными в архив обработками класса Объекты_v8?
У меня отказывается работать с новой реализацией класса Коллекция.
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #824 - 07. Июня 2012 :: 07:27
Печать  
berezdetsky писал(а) 07. Июня 2012 :: 06:03:
Попробуй лучше mscomctl.ocx найти. Например, здесь. Лицензия, если спросит,

[HKCR\Licenses\ED4B87C4-9F76-11d1-8BF7-0000F8754DA1]
@ = "knlggnmntgggrninthpgmnngrhqhnnjnslsh"


Эта ошибка устранена, теперь новая засада:
Код
Выбрать все
ПоставщикДанныхМногострочнаяЧасть.ТипЗначений = ТипДанных + "." + ВидДанных;
{Обработка.СправочникСписок.Форма.Модуль(10)}: ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=Справочник.сфМагазины) : ПоставщикДанных.Справочник::Конструктор() : Неудачная попытка создания объекта
БазаДанных = СоздатьОбъект("SQLiteBase");
вщикДанных.Справочник.ert(91) }

ПоставщикДанных = СоздатьОбъект("ПоставщикДанных.Справочник");
вщикДанных.ert(94) }
 


1sqllite.dll есть.
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #825 - 07. Июня 2012 :: 09:10
Печать  
mozer писал(а) 07. Июня 2012 :: 07:27:
Эта ошибка устранена, теперь новая засада:
...
1sqllite.dll есть.

Под админом запускал?
  
Наверх
GTalkICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #826 - 07. Июня 2012 :: 12:19
Печать  
Сами классы то хоть есть ?
1cpp загружена ? версии какой хоть ?
а 1sqlite загружена, какой версии ?
  
Наверх
 
IP записан
 
EvgeniuXP
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 03. Июня 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #827 - 07. Июня 2012 :: 19:31
Печать  
Kalen писал(а) 05. Июня 2012 :: 16:29:
[quote author=EvgeniuXP link=1285520767/795#809 date=1338907508]Попробуй подумать хотябы методом исключения - а что если ничего не стоит?

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


Всё правильно, но тут есть исключение, во-первых, перед именем колонки не надо ничего указывать - будет сортировать по возрастанию, во-вторых, если выборку делать через ПолучитьЗначение - то получим не сортированный список, выборку нужно делать через ВыбратьСтроки - вот это и сбило меня с толку, ну а в третьих, можно и в запросе упорядочить, но некоторых групп нет и я их программно добавляю, чтобы они были и вывелись нулевые итоги.
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #828 - 08. Июня 2012 :: 05:32
Печать  
Eprst писал(а) 07. Июня 2012 :: 12:19:
Сами классы то хоть есть ?
1cpp загружена ? версии какой хоть ?
а 1sqlite загружена, какой версии ?

загружены:
1сpp версия 3.2.2.0
1sqlite версия 1.0.2.3
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #829 - 08. Июня 2012 :: 06:00
Печать  
mozer писал(а) 08. Июня 2012 :: 05:32:
Eprst писал(а) 07. Июня 2012 :: 12:19:
Сами классы то хоть есть ?
1cpp загружена ? версии какой хоть ?
а 1sqlite загружена, какой версии ?

загружены:
1сpp версия 3.2.2.0
1sqlite версия 1.0.2.3


В какой момент их грузишь и в какой последовательности ?
1sqlite поди грузишь после создания класса в котором объект sqllitebase создается?
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #830 - 08. Июня 2012 :: 08:05
Печать  
Eprst писал(а) 08. Июня 2012 :: 06:00:
mozer писал(а) 08. Июня 2012 :: 05:32:
Eprst писал(а) 07. Июня 2012 :: 12:19:
Сами классы то хоть есть ?
1cpp загружена ? версии какой хоть ?
а 1sqlite загружена, какой версии ?

загружены:
1сpp версия 3.2.2.0
1sqlite версия 1.0.2.3


В какой момент их грузишь и в какой последовательности ?
1sqlite поди грузишь после создания класса в котором объект sqllitebase создается?

дело было в порядке загрузки библиотек.

Еще наблюдение офис должен быть все таки 32 битный. Потому как с 64 битным я библиотеку mscomctl.ocx зарегистрировать не смог.
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #831 - 08. Июня 2012 :: 09:37
Печать  
Подкинте кто нибудь примеры по заполнению и работе с деревом значений ...
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #832 - 09. Июня 2012 :: 17:27
Печать  
mozer писал(а) 08. Июня 2012 :: 09:37:
Подкинте кто нибудь примеры по заполнению и работе с деревом значений ...

Не нужно разобрался  Подмигивание
  
Наверх
 
IP записан
 
EvgeniuXP
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 03. Июня 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #833 - 10. Июня 2012 :: 07:50
Печать  
mozer писал(а) 09. Июня 2012 :: 17:27:
mozer писал(а) 08. Июня 2012 :: 09:37:
Подкинте кто нибудь примеры по заполнению и работе с деревом значений ...

Не нужно разобрался  Подмигивание

кинь сюда, тоже интересно.
  
Наверх
 
IP записан
 
Попытка1С
1c++ donor
Отсутствует


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #834 - 13. Июня 2012 :: 07:31
Печать  
Всем привет.

Подскажите, какая процедура срабатывает при добавлении строчки в ТП, для подчиненного справочника.
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #835 - 14. Июня 2012 :: 03:40
Печать  
EvgeniuXP писал(а) 10. Июня 2012 :: 07:50:
mozer писал(а) 09. Июня 2012 :: 17:27:
mozer писал(а) 08. Июня 2012 :: 09:37:
Подкинте кто нибудь примеры по заполнению и работе с деревом значений ...

Не нужно разобрался  Подмигивание

кинь сюда, тоже интересно.

Моя обработка тебе ничего не даст.
Скажу только следующее, что в документации описаны, только методы дерева. Для его заполнения нужно воспользоваться дополнительными конструкциями. Например индексированная таблица. В ней два столбца, один это для элементов по которым строишь иерархию, а второй полный путь этого элемента в дереве.
дальше при добавлении элемента проверяешь есть ли родитель этого элемента в ИТ или нет. Если есть то в метод "НоваяСтрока()" передаешь найденный путь, если нет, то не передаешь.

вот код заполнения
Код
Выбрать все
итЭлементыНоменклатуры.ВыбратьСтроки();
	Пока итЭлементыНоменклатуры.ПолучитьСтроку() = 1 Цикл
		Если Соответствие.НайтиСтроку("Объект",итЭлементыНоменклатуры.ИдГруппы,,1) = 0 Тогда
			строкаПуть = "";
		Иначе
			строкаПуть = Соответствие.ПолныйПуть;
		КонецЕсли;
		Путь = ДеревоЗначений.НоваяСтрока(строкаПуть);
		ДеревоЗначений.Код = итЭлементыНоменклатуры.Код;
		ДеревоЗначений.Номенклатура = итЭлементыНоменклатуры.Номенклатура;
		ДеревоЗначений.Ставка = итЭлементыНоменклатуры.Ставка;
		ДеревоЗначений.Условие = итЭлементыНоменклатуры.Условие;
		Соответствие.НоваяСтрока();
		Соответствие.Объект = итЭлементыНоменклатуры.Номенклатура;;
		Соответствие.ПолныйПуть = Путь;
	КонецЦикла;
 

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


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #836 - 19. Июня 2012 :: 02:57
Печать  
Ни когда не писал на поставщике журнал. Вот хочу испытать.
Есть сразу вопрос, я могу в Журнале отобразить данные строго для пользователя, чтоб чужие документы он не видел?
  
Наверх
 
IP записан
 
mozer
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 324
Местоположение: Пермь
Зарегистрирован: 14. Января 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #837 - 19. Июня 2012 :: 03:29
Печать  
Еще вопрос можно ли организовать на Поставщике данных динамический фильтр.
Чтобы при наборе например фамилии отфильтровывались все строки начинающиеся на нее.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #838 - 19. Июня 2012 :: 04:16
Печать  
mozer писал(а) 19. Июня 2012 :: 02:57:
Ни когда не писал на поставщике журнал. Вот хочу испытать.
Есть сразу вопрос, я могу в Журнале отобразить данные строго для пользователя, чтоб чужие документы он не видел?

Что закодируешь, то и будет
mozer писал(а) 19. Июня 2012 :: 03:29:
Еще вопрос можно ли организовать на Поставщике данных динамический фильтр.
Чтобы при наборе например фамилии отфильтровывались все строки начинающиеся на нее.

Тут надо смотреть "ПриБыстромПоиске"
  
Наверх
ICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #839 - 05. Июля 2012 :: 09:00
Печать  
Добавляю в очередной форме разделитель на панельку
Код
Выбрать все
Панель.Добавить(Панель.Кнопка("Разделитель5",4)); 


Добавляется пустая кнопка Печаль
В других формах нормально.
Где я что пропустил?
  

toolbar.jpg ( 5 KB | Загрузки )
toolbar.jpg
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #840 - 05. Июля 2012 :: 09:27
Печать  
Цитата:
Добавляю в очередной форме разделитель на панельку

Выяснилось, что такой эффект дает
Код
Выбрать все
Данные.Отображение = 4; 

Поставщика ДеревоЗначений (версия от 20.05.11). Причем, влияет на всех Поставщиков формы. К слову, не увидел отличия вариантов 3 и 4 от 1-го. Глюк с разделителем дает только вариант 4.
  
Наверх
GTalkICQ  
IP записан
 
Kurya
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 28
Зарегистрирован: 24. Мая 2006
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #841 - 09. Июля 2012 :: 12:22
Печать  
Народ, как уничтожать ПоставщикДанных?
Проблемма такая: сделал обработку которая вызывается автоматом при запуске 1С под определенным пользователем. В обработке несколько раз вызывается ПоставщикДанных (журналы и регистры).
Все работает, но при автоматическом вызове иногда не срабатывает последний вызов Поставщика, ессно обработка прерывается и 1С валится. Когда запускаю "вручную" - все нормально. Хочу попробовать перед каждым новым вызовом Поставщика уничтожать предыдущего. ПоставщикДанных = ""; как то не очень срабатывает.
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #842 - 09. Июля 2012 :: 12:53
Печать  
Kurya писал(а) 09. Июля 2012 :: 12:22:
при автоматическом вызове иногда не срабатывает последний вызов
  Очень довольный
Что есть "вызов Поставщика"? Код давай. Подозреваю, что валится как раз наоборот из-за несвоевременного уничтожения объекта Поставщика.
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #843 - 21. Августа 2012 :: 12:56
Печать  
Столкнулся с падением 1с при выборе элемента из формы списка справочника при использовании Поставщика. Причем падает только на терминальном сервере (2k8r2) - у меня локально (win7) все пучком. Версии класса и 1с++ одинаковые.
Куда копать подскажете? Печаль
ЗЫ: пока писал выяснилось, что падает не у всех. Возможно вообще только у меня. У меня же падает стабильно.
« Последняя редакция: 21. Августа 2012 :: 14:09 - Kalen »  
Наверх
GTalkICQ  
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #844 - 21. Августа 2012 :: 13:44
Печать  
Столкнулся с такой ситуацией.

Пытаюсь реализовать ПоставщикаДанных на форме списка справочника. Стандартную Многострочную часть делаю маленькой, выношу за пределы формы, плюс Формексом Видимость в 0 устанавливаю. Но при работе с ПД при пометке удаления элемента помечается на удаление текущий элемент ПД и первый элемент из Многострочной части.

Как этого избежать?
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #845 - 21. Августа 2012 :: 14:02
Печать  
alyuev писал(а) 21. Августа 2012 :: 13:44:
Как этого избежать?

В журнале документов делаю так:
1.Синхронизируюсь с МногострочнойЧастью (меню "Действия" будет адекватным)
Код
Выбрать все
Процедура СписокДокументовПриАктивизацииСтроки(ТабличноеПоле)
	ТекДок=ТабличноеПоле.ТекущиеДанные.ТекущийДокумент;
	АктивизироватьОбъект(ТекДок);
 


2.Del обрабатывается только штатной МногострочнойЧастью + у меня родная ПриУдалении в глобальнике
Код
Выбрать все
Процедура СписокДокументовПриНажатииКлавиши(ТП, ВиртКод, Данные, Клавиатура, ФСО)
	Если ВиртКод=Клавиатура.VK_DELETE Тогда
		ФСО=0;
 

Для формы списка справочника читай то же самое.
« Последняя редакция: 21. Августа 2012 :: 17:09 - Kalen »  
Наверх
GTalkICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #846 - 21. Августа 2012 :: 14:04
Печать  
Воткнуть в ИспользоватьСписокЭлементов какую нить шнягу - чтоб был пустой список.. или отбор по несуществующему полю сделать (что не очень гут - группы видны будут)

Тогда и метить на удаление будет нечего
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #847 - 21. Августа 2012 :: 14:51
Печать  
Ага - с ИспользоватьСписокЭлементов() - взлетело! Спасибо!
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #848 - 22. Августа 2012 :: 11:21
Печать  
Споткнулся об недопеределку:
Цитата:
ПоставщикДанных.Журнал::УдалитьКолонкуДанных(Строка ИмяКолонки=Получатель) : Слишком много параметров передано при вызове функции/процедуры объекта
Если СвойствоОтбор.НайтиОтбор(ИмяКолонки,0) = 1 Тогда

В нынешнем варианте НайтиОтбор() нет второго параметра.
  
Наверх
GTalkICQ  
IP записан
 
DmSk
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Барнаул
Зарегистрирован: 28. Марта 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #849 - 30. Августа 2012 :: 07:56
Печать  
Небольшой вопрос:
как из обработки процедуры ТППРиВыбореЗначения()
разворачивать дерево ?
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #850 - 30. Августа 2012 :: 09:53
Печать  
DmSk писал(а) 30. Августа 2012 :: 07:56:
Небольшой вопрос:
как из обработки процедуры ТППРиВыбореЗначения()
разворачивать дерево ?

Надо получить полный путь разворачиваемого узла и вызвать метод поставщика "Процедура Развернуть(ПолныйПуть, Вложенные = 0) Экспорт"
  
Наверх
ICQ  
IP записан
 
DmSk
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Барнаул
Зарегистрирован: 28. Марта 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #851 - 30. Августа 2012 :: 14:31
Печать  
ещё маленький вопросик, как определить узел свернут илли развернут, пробовал так УзелРазвернут = ДеревоЗначений.УзелРазвернут;   - ругается
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #852 - 30. Августа 2012 :: 14:59
Печать  
DmSk писал(а) 30. Августа 2012 :: 14:31:
как определить узел свернут илли развернут, пробовал так УзелРазвернут = ДеревоЗначений.УзелРазвернут;   - ругается

ДеревоЗначений - это у тебя что?
Где-то так...
ПоставщикДанных.ТабличноеПоле.ТекущиеДанные.УзелРазвернут

ЗЫ Иногда помогает посмотреть объект в отладчике.
  
Наверх
GTalkICQ  
IP записан
 
DmSk
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Барнаул
Зарегистрирован: 28. Марта 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #853 - 31. Августа 2012 :: 06:52
Печать  
Все получилось, спасибо !
вот такой код, если кому нужно будет:

//****************************************************
Процедура ТППриВыбореЗначения(ТаблПоле,Стр)   
     
     ПолныйПуть            = ДеревоЗначений.ПолныйПуть;   
     УзелРазвернут      = ТабличноеПоле.ТекущиеДанные.УзелРазвернут;

     Если УзелРазвернут = 1 Тогда
           Данные.Свернуть(ПолныйПуть);
     Иначе      
           Данные.Развернуть(ПолныйПуть); 
     КонецЕсли;      
     Данные.Обновить();
КонецПроцедуры

где
     ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
     ПоставщикДанных.ТипЗначений = "ДеревоЗначений";
     ПоставщикДанных.КонтейнерКоманднойПанели = "ПУ";
     ПоставщикДанных.КонтейнерТабличногоПоля  = "ТП";
     
     ТабличноеПоле = ПоставщикДанных.ТабличноеПоле;
     Данные = ПоставщикДанных.Данные;   
     ТабличноеПоле = ПоставщикДанных.ТабличноеПоле;
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #854 - 05. Сентября 2012 :: 06:22
Печать  
Kalen писал(а) 21. Августа 2012 :: 12:56:
Столкнулся с падением 1с при выборе элемента из формы списка справочника при использовании Поставщика...

Пришлось перенести список справочника в отдельную форму обработки. В модуль оригинальной формы списка в ПриОткрытии вставил вызов формы обработки с Поставщиком. Как бы заставить обработку возвращать выбранный элемент, если оригинальный список был открыт в режиме выбора через стандартную кнопку <...>? Через ОткрытьПодбор работает, но этож надо в каждой форме, где есть выбор элемента этого справочника... Печаль
Как внутри 1с работает механизм выбора?
  
Наверх
GTalkICQ  
IP записан
 
Igor Tsapko
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Местоположение: Украина
Зарегистрирован: 19. Июня 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #855 - 22. Сентября 2012 :: 13:35
Печать  
Цитата:
Как бы заставить обработку возвращать выбранный элемент, если оригинальный список был открыт в режиме выбора через стандартную кнопку <...>

Почти поборол эту проблему. Делаю так:
В модуле формы оригинального списка:

Код
Выбрать все
Процедура ПослеОткрытия()
        спПараметров = СоздатьОбъект("СписокЗначений");
	спПараметров.ДобавитьЗначение(ТекущийЭлемент());
	спПараметров.ДобавитьЗначение(Форма.РежимВыбора());
	спПараметров.ДобавитьЗначение(Контекст);
	ОткрытьФорму("Обработка.НовыйСправочникТМЦ", спПараметров);
КонецПроцедуры

Процедура СделатьВыбор(Элемент) Экспорт
	Форма.ВыполнитьВыбор(Элемент);
КонецПроцедуры
 



В модуле формы нового справочника ("Обработка.НовыйСправочникТМЦ")
Код
Выбрать все
Процедура ТП_Выбор(ТипРегиона, Стр, Колонка)
	Если ПустаяСтрока(Стр) = 1 Тогда
		Возврат;
	КонецЕсли;

	Если Данные.РежимВыбора = 0 Тогда
		ОткрытьФорму(Данные.ТекущаяСтрока);
	Иначе
		Парамс = СоздатьОбъект("СписокЗначений");
		Парамс.ДобавитьЗначение(Данные.ТекущаяСтрока);
		Сервис.ВыполнитьПроцедуру(Форма.Параметр.ПолучитьЗначение(3), "СделатьВыбор", Парамс);
		Форма.Закрыть();
	КонецЕсли;
КонецПроцедуры  



В итоге в форму документа возвращается выбранное значение, проблема только в том, что на экране помимо новой формы висит стандартная форма справочника. Закрывать ее нельзя, ибо через нее связь с формой документа. Ее бы спрятать Печаль Может есть решения для этого?
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #856 - 24. Сентября 2012 :: 06:16
Печать  
А зачем вообще открывать форму списка справочника? Для чего это тебе нужно?
Открывай сразу обработку.
То есть
Код
Выбрать все
Процедура ПриНачалеВыбораЗначения(Ид,ФСО)
Если Ид = "ТМЦ" Тогда
ФСО = 0;
Параметры = ...
ОткрытьФорму("Обработка.НовыйСправочникТМЦ",Параметры);
КонецЕсли;
КонецПроцедуры
 


Ну а в обработке при выборе значения:
Код
Выбрать все
Форма.ВыполнитьВыбор(ВыбранныйЭлемент);
Форма.Закрыть();
 


Или, если не хочешь править всю конфигурацию, перхватывай
событие ПриНачалеВыбораЗначения и делай там это.
  
Наверх
 
IP записан
 
Igor Tsapko
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Местоположение: Украина
Зарегистрирован: 19. Июня 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #857 - 27. Сентября 2012 :: 08:16
Печать  
Все оказалось гораздо проще:
Kateryne писал(а) 07. Декабря 2010 :: 22:27:
Я нашла причину вылетов! Уф... попарилась.
Не знаю только теперь, как ее трактовать.

Дело было в файле 1Cv7.CFG, лежащем в папке пользователя.
А точнее, в параметре UserValuesProfile
При значениях UserValuesProfile определенного вида - происходил вылет.
Почистила настройки, создала файл снова - вылетов нет! Что не может не радовать.
Однако, нужна ваша консультация. По идее этот файл с настройками формировался не вручную, а системой.
Можете объяснить почему происходил вылет, и кто тут виноват - 1С сформировала файл с настройками некорректного формата, или формат настроек корректен, но не может обработаться ПоставщикомДанных?

Выкладываю файл с конфигурацией, и файлы с настройками - с вылетом и без.

Файл с настройками и вылетом:

  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #858 - 27. Ноября 2012 :: 10:46
Печать  
Не работает командная панель в поставщике данных
Кнопки создались, нажимаются, но никакой реакции нет
На моем компе (XP) и другом (Win 7) работает
А на том, котором нужно - нет (Win 7 32 бита)
Не заходит в ButtonClick
Куда копать? Что в системе подправить?
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #859 - 27. Ноября 2012 :: 11:06
Печать  
запусти это, должно заработать потом


ЗЫ: MSCOMCTL.OCX еще зарегь через regsvr32
  

_____________________008.ert ( 96 KB | Загрузки )
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #860 - 27. Ноября 2012 :: 11:11
Печать  
Мысли насчет реестра были, но куда лезть в данном случае без понятия
Спасибо большое, будем пробовать
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #861 - 27. Ноября 2012 :: 11:14
Печать  
MSCOMCTL.OCX - это который в систем32?
У меня их три оказалось в разных местах, когда-то скачивал для конструктора Улыбка
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #862 - 27. Ноября 2012 :: 11:15
Печать  
ага.. по идее, лучше иметь все одной версии
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #863 - 27. Ноября 2012 :: 11:16
Печать  
А 1сpp какой версии еще ?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #864 - 27. Ноября 2012 :: 11:18
Печать  
+ еще есть момент, на какой контрол натянут активикс - на кнопку или на текст. Там тоже будет разное поведение событий.
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #865 - 27. Ноября 2012 :: 11:49
Печать  
1cpp - 3.2.2.5
Обработка сказала про отсутствие файла comdlg32.ocx
на кнопку натянуто
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #866 - 27. Ноября 2012 :: 11:55
Печать  
ешкин кот, где взять этот файл?
на том компе где работает его нет тоже

update: скачал, надеюсь подойдет
на первый взгяд заработало! УРА!
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #867 - 27. Ноября 2012 :: 12:31
Печать  
Вроде ОК.
Епрст, спасибо, не первый раз выручаешь   Очень довольный
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #868 - 27. Ноября 2012 :: 12:34
Печать  
поделка, кстати, Абрахамса..
  
Наверх
 
IP записан
 
ParaWiz_
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Местоположение: Томск
Зарегистрирован: 19. Июля 2011
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #869 - 03. Декабря 2012 :: 09:24
Печать  
Вопрос, почему вот такая вот конструкция выдает 0 результатов, при том если все то же самое делать отбором на форме то все работает .... а, да работает неправильно только последний отбор с видом сравнения ВСписке
[code]
//--------------------------------------------
Процедура ИнициализацияПоставщикДанныхОперации()
  СодержанияОпераций = СоздатьОбъект("СписокЗначений");
  СодержанияОпераций.ДобавитьЗначение("Распределение бонусов","Распределение бонусов");
  СодержанияОпераций.ДобавитьЗначение("Перенос текущих расчетов по з/п (авто)");
//погрызено для компактности
   
  ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
  ПоставщикДанных.БиблиотекаКартинок            = глБиблиотекаКартинокПоставщика;
  ПоставщикДанных.ТипЗначений                    = "Операции";
  ПоставщикДанных.КонтейнерТабличногоПоля        = "ТабличноеПолеОперации";
  ПоставщикДанных.КонтейнерКоманднойПанели    = "КоманднаяПанельОперации";
  ВидыСравнений = СоздатьОбъект("ВидыСравнения");
   
  ДанныеОперации = ПоставщикДанных.Данные;
  ДанныеОперации.РежимОтладки = 1;
   
  ДанныеОперации.СоздатьКнопкиПоУмолчанию();
   
  // Добавление колонок
  ДанныеОперации.НоваяКолонка("ДатаДокумента");
  ДанныеОперации.НоваяКолонка("ВремяДокумента");
  ДанныеОперации.НоваяКолонка("ВидДокумента");
  ДанныеОперации.НоваяКолонка("НомерДокумента");    
  ДанныеОперации.НоваяКолонка("СодержаниеОперации");
  ДанныеОперации.НоваяКолонка("СуммаОперации");
   
  ОтборДата = ДанныеОперации.Отбор.ДатаДокумента;
  ОтборДата.ИзменятьИспользование = 1;
  ОтборДата.Использование = 1;
  ОтборДата.ВидСравнения = ВидыСравнений.Интервал;
  ОтборДата.ЗначениеС = НачГода(РабочаяДата());
  ОтборДата.ЗначениеПо = КонГода(РабочаяДата());

  ОтборВидДокумента = ДанныеОперации.Отбор.ВидДокумента;
  ОтборВидДокумента.ИзменятьИспользование = 0;
  ОтборВидДокумента.Использование = 1;
  ОтборВидДокумента.ВидСравнения = ВидыСравнений.Равно;
  ОтборВидДокумента.Значение = Метаданные.Документ("Операция");
   
  ОтборСодержаниеОперации = ДанныеОперации.Отбор.СодержаниеОперации;
  ОтборСодержаниеОперации.ИзменятьИспользование = 0;
  ОтборСодержаниеОперации.Использование = 1;
  ОтборСодержаниеОперации.ВидСравнения = ВидыСравнений.ВСписке;
  ОтборСодержаниеОперации.Значение = СодержанияОпераций;
//---------------
[/code]
и подозрительно выглядит часть запроса:
      and oper.descr in ений','СписокЗначений','СписокЗначений','СписокЗначений','СписокЗначений')))))

1cpp 3.2.3.17
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #870 - 18. Декабря 2012 :: 16:45
Печать  
Народ, дайте примеры, как юзать «ПоставщикДанных.ДеревоЗначений»
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

1Cv7_MD.zip ( 186 KB | Загрузки )

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #872 - 21. Декабря 2012 :: 14:14
Печать  
А вот папка SystemData которую надо положить в папку с конфой Улыбка
Там длл, классы и прочее... много мусора, но нужное ты и сам найдешь. Тебе ведь пример Улыбка

Нужна помощь обращайся напрямую, почта или аська. Я тут редко счас бываю. Крайне некогда
  

SystemData.zip ( 571 KB | Загрузки )

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #873 - 25. Декабря 2012 :: 19:38
Печать  
Ребята, тут такое дело... Я на новогодние праздники планирую восстановить на своем компе 7-ку и немного вернуться на доработку классов.
Планов пока нет.
Таким образом буду признателен если на форуме будет выложен более менее систематизированый список ошибок + пожеланий.
В первую очередь исправлю ошибки. Принимаются замечания только по последним версиям.
Самому искать счас не очень охото инфу. Всем кому надо помочь пишите с примерами или лучше демками. С интересными вопросами повожусь.
Пускай это будет своеобразный новогодний подарок тем кто еще на 7ке и 1cpp.
  

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


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #874 - 26. Декабря 2012 :: 11:21
Печать  
vandalsvq писал(а) 25. Декабря 2012 :: 19:38:
Ребята, тут такое дело... список ошибок + пожеланий.


Сделать отбор в ПоставщикДанныхИТЗ
http://www.1cpp.ru/forum/YaBB.pl?num=1333941317/0#11

Ну и в той же ветке отписал про ЖурналОпераций
  
Наверх
ICQ  
IP записан
 
mszsuz
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 33
Зарегистрирован: 18. Октября 2010
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #875 - 27. Января 2013 :: 12:44
Печать  
vandalsvq писал(а) 21. Декабря 2012 :: 14:14:
А вот папка SystemData которую надо положить в папку с конфой Улыбка
Там длл, классы и прочее... много мусора, но нужное ты и сам найдешь. Тебе ведь пример Улыбка

Нужна помощь обращайся напрямую, почта или аська. Я тут редко счас бываю. Крайне некогда


Внутри архива вместо русских имен файлов - кракозябры.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #876 - 27. Января 2013 :: 13:03
Печать  
mszsuz писал(а) 27. Января 2013 :: 12:44:
Внутри архива вместо русских имен файлов - кракозябры.


Это все долбанный мак Печаль.... блин. Чуток позже правильно выложу
  

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


1C++ rocks!

Сообщений: 4
Зарегистрирован: 01. Февраля 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #877 - 04. Февраля 2013 :: 10:46
Печать  
[quote author=artbear link=1285520767/870#870 date=1355849152]Народ, дайте примеры, как юзать «ПоставщикДанных.ДеревоЗначений»[/quote]
Уважаемый  artbear.
Если Вы уже получили пример испольлзования ДереваЗначений (особенно заполнение из справочника с уровнем вложения до 4 и с возможностью отметок галочками ), то не сочтите за труд, киньте на мыло aleksdbs at mail.ru
У меня есть рабочий вариант двухуровневого дерева на Формексе с возможностью ставить/снимать галочки. Могу прислать, если Вам нужно.
  
Наверх
ICQ  
IP записан
 
mszsuz
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 33
Зарегистрирован: 18. Октября 2010
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #878 - 04. Февраля 2013 :: 16:02
Печать  
[quote author=torius link=1285520767/870#877 date=1359974802][quote author=artbear link=1285520767/870#870 date=1355849152]Народ, дайте примеры, как юзать «ПоставщикДанных.ДеревоЗначений»[/quote]
Уважаемый  artbear.
Если Вы уже получили пример испольлзования ДереваЗначений (особенно заполнение из справочника с уровнем вложения до 4 и с возможностью отметок галочками ), то не сочтите за труд, киньте на мыло aleksdbs at mail.ru
У меня есть рабочий вариант двухуровневого дерева на Формексе с возможностью ставить/снимать галочки. Могу прислать, если Вам нужно. [/quote]
  

_____________________-______.ert ( 84 KB | Загрузки )
Наверх
 
IP записан
 
torius
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 01. Февраля 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #879 - 04. Февраля 2013 :: 18:55
Печать  
[quote author=mszsuz link=1285520767/870#878 date=1359993759][quote author=torius link=1285520767/870#877 date=1359974802][quote author=artbear link=1285520767/870#870 date=1355849152]Народ, дайте примеры, как юзать «ПоставщикДанных.ДеревоЗначений»[/quote]
Уважаемый  artbear.
Если Вы уже получили пример испольлзования ДереваЗначений (особенно заполнение из справочника с уровнем вложения до 4 и с возможностью отметок галочками ), то не сочтите за труд, киньте на мыло aleksdbs at mail.ru
У меня есть рабочий вариант двухуровневого дерева на Формексе с возможностью ставить/снимать галочки. Могу прислать, если Вам нужно. [/quote]
[/quote]
Спасибо! То, что нужно!
  
Наверх
ICQ  
IP записан
 
mszsuz
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 33
Зарегистрирован: 18. Октября 2010
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #880 - 05. Февраля 2013 :: 04:51
Печать  
баг:
ПоставщикДанных.ИдексированнаяТаблица.ert, строка 406
Вместо
Если СтароеОписание.Количество = 1 Тогда
надо
Если СтароеОписание.КоличествоТипов = 1 Тогда
  
Наверх
 
IP записан
 
torius
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 01. Февраля 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #881 - 05. Февраля 2013 :: 08:34
Печать  
[quote author=mszsuz link=1285520767/870#880 date=1360039916]баг:
ПоставщикДанных.ИдексированнаяТаблица.ert, строка 406
Вместо
Если СтароеОписание.Количество = 1 Тогда
надо
Если СтароеОписание.КоличествоТипов = 1 Тогда[/quote]

Спасибо, подправил. :)
  
Наверх
ICQ  
IP записан
 
torius
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 01. Февраля 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #882 - 06. Февраля 2013 :: 12:40
Печать  
Подскижите, плиз, как колонку в ПД Дерево значений сделать нередактируемой, а только для просмотра
  
Наверх
ICQ  
IP записан
 
Zuxel
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 27. Декабря 2010
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #883 - 08. Февраля 2013 :: 07:59
Печать  
Народ, подскажите, в Журнал поставщика можно как-нибудь добавить текстовые колонки, которые будут заполняться функцией из модуля, как в обычном журнале 1с?
  
Наверх
 
IP записан
 
viddik
Junior Member
**
Отсутствует



Сообщений: 37
Зарегистрирован: 22. Октября 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #884 - 11. Февраля 2013 :: 11:11
Печать  
Zuxel писал(а) 08. Февраля 2013 :: 07:59:
Народ, подскажите, в Журнал поставщика можно как-нибудь добавить текстовые колонки, которые будут заполняться функцией из модуля, как в обычном журнале 1с?

Можно. Для этого нужно напрямую работать с Табличным полем Поставщика:
Код
Выбрать все
КолонкаТест = ПоставщикДанных.ТабличноеПоле.Колонки.Добавить("Тест");
КолонкаТест.Заголовок = "Тест";
КолонкаТест.Ширина = 12; 


Заполнять можно в событии ПриВыводеСтроки:
Код
Выбрать все
Процедура и,ТипРегиона)
	Если ТипРегиона = 3 Тогда
		ОформлениеСтроки.Ячейки.Тест.ОтображатьТекст = 1;
		ОформлениеСтроки.Ячейки.Тест.Текст = "Тарам-пам-пам";
	КонецЕсли;
КонецПроцедуры 

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


I Love YaBB 2!

Сообщений: 148
Местоположение: Киев
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #885 - 19. Марта 2013 :: 12:59
Печать  
Кто-то пользуется поставщикомДанных.Регистр

Вот решил попробовать

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



На выделенной строке - вылетает ошибка

ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=Регистр.ОстаткиТоваров) : ПоставщикДанных.Регистр::ПриЗаписи_ВидРегистра(Строка Параметр=ОстаткиТоваров) : ПоставщикДанных.ТабличноеПоле::Обновить() : ПоставщикДанных.Регистр::УстановитьПоставщикаДанных() : no such column: journ.docno

При исследовании ситуации отладчиком увидел текст запроса

select
     case when ra1179.debkred = 1 then 11 else 10 end as [Пиктограмма]
     ,ra1179.iddoc as [Регистратор :Документ]
     ,ra1179.iddocdef as [Регистратор_вид :ВидДокумента]
     ,ltrim(journ.docno) as [НомерДокумента]
     ,ra1179.date as [Период $Дата]
     ,ra1179.time as [ВремяДокумента $Время]
     ,ra1179.lineno as [НомерСтрокиДокумента]
     ,ra1179.Фирма as [Фирма :Справочник.Фирмы]
     ,ra1179.Товар as [Товар :Справочник.ТМЦ]
     ,ra1179.Склад as [Склад :Справочник.МестаХранения]
     ,ra1179.ОстатокТовара as [ОстатокТовара :Число.15.3]
     ,ra1179.ФлагУчета as [ФлагУчета :Число.1.0]
     ,ra1179.idx_IDDOC_LINENO_ACTNO as [КлючПорядка]
     ,idx_IDDOC_LINENO_ACTNO as [НомерСтрокиЗаписи]
from [Регистр.ОстаткиТоваров] as ra1179

Реально поля нет , как и нет соединения с журналом

Я что-то делаю не так ?
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #886 - 19. Марта 2013 :: 13:00
Печать  
Поставь галку - быстрая обработка движений и усё будет (или отбор на одном из измерений)
  
Наверх
 
IP записан
 
sashas09
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Местоположение: Киев
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #887 - 19. Марта 2013 :: 13:21
Печать  
галка установлена
бежал отладчиком - видел
да и щас посмотрел
  
Наверх
ICQ  
IP записан
 
sashas09
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Местоположение: Киев
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #888 - 19. Марта 2013 :: 13:33
Печать  
и в таблице регистра НомерДокумента отсутствует как класс,
поэтому , по любому нужно соединение с журналом
  
Наверх
ICQ  
IP записан
 
sashas09
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Местоположение: Киев
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #889 - 19. Марта 2013 :: 13:47
Печать  
смотрим в поставщикДанных.Регистр.ert и видим

Код
Выбрать все
Функция ПолучитьТекстИсточникаСбора(ТекстСоединения = "")
	ТекстИсточника = "";

	// текст запроса основного источника данных
	ТекстИсточника = ТекстИсточника + "
	|from Регистр." + ВидРегистра + " as ТекущийОбъект $nolock
	|";

	// проверяем на необходимость соединения с таблицей журнала документов
	Если (МетаРегистр.БыстраяОбработкаДвижений = 0)
		или (СвойствоОтбор.НайтиОтбор("НомерДокумента") = 1) Тогда
		ТекстИсточника = ТекстИсточника + "	left join ЖурналДокументов as journ $nolock
		|		on journ.iddoc = ТекущийОбъект.iddoc
		|";
	КонецЕсли;

	// добавим соединения для дополнительных данных
.......
 



По моему - ошибка
  
Наверх
ICQ  
IP записан
 
sashas09
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Местоположение: Киев
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #890 - 19. Марта 2013 :: 13:51
Печать  
исправил на

Код
Выбрать все
Если (МетаРегистр.БыстраяОбработкаДвижений = 1)  



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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #891 - 23. Апреля 2013 :: 19:27
Печать  
Пролистал последние 10 страниц переписки, нашел несколько ошибок в итоге их и поправил.
Изменений не много. Главное что наконец у меня встала 7.7, правда как то криво и постоянно падает Улыбка. Но ничего.
В общем вот:

5.0.2 от 24.04.12 г.
- Исправлена ошибка при укладке списков со строковыми значениями для отбора.
- Исправлена ошибка формирования запроса для объекта-расширения «ПоставщикДанных.Регистр» если у регистра стоит признак «Быстрая обработка движений»
- Исправлены выявленные ошибки.
  

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


1C++ rocks!

Сообщений: 41
Зарегистрирован: 07. Февраля 2011
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #892 - 24. Апреля 2013 :: 06:47
Печать  
ALS-файл
Сори если уже есть.
« Последняя редакция: 25. Апреля 2013 :: 10:42 - ted »  
Наверх
 
IP записан
 
ted
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 07. Февраля 2011
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #893 - 29. Апреля 2013 :: 12:46
Печать  
Как в ТабличноеПоле добавить иконки из своего файла?

Так делал - не робыт:

Процедура ПослеСозданияФормы()
     
     ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
     
     БиблиотекаКартинок = СоздатьОбъект("ПоставщикДанных.БиблиотекаКартинок");
     БиблиотекаКартинок.КартинкаТабличногоПоля = КаталогИБ() + "classes\ПоставщикДанных\МоиКартинки.bmp";
     ПоставщикДанных.БиблиотекаКартинок = БиблиотекаКартинок;
  
Наверх
 
IP записан
 
accuman
YaBB Newbies
*
Отсутствует



Сообщений: 6
Местоположение: Витебск
Зарегистрирован: 02. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #894 - 05. Мая 2013 :: 01:25
Печать  
А куда делось событие ПриИзмененииОтбора()?
Ну или чем его заменить можно?
  
Наверх
IP записан
 
kos
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 127
Местоположение: Киев
Зарегистрирован: 03. Марта 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #895 - 17. Мая 2013 :: 08:09
Печать  
Уважаемое сообщество.

В ветке по обновлениям поставки классов
в этом посте http://www.1cpp.ru/forum/YaBB.pl?num=1273512019/30#30
(сразу извиняюсь за "дубль", думаю вопрос нужно задать)
вынес предложение многоуважаемому автору
об изменении состава поставки,
а именно - всегда самые последние версии - в одном архиве:
../ПрямойЗапрос/...
../ПоставщикДанных/...
../УправлениеФормой/...
../Объектv8/...
../может еще что-то чего я не знаю/...

Прошу здесь покритиковать
- плюсы
- минусы
  
Наверх
 
IP записан
 
accuman
YaBB Newbies
*
Отсутствует



Сообщений: 6
Местоположение: Витебск
Зарегистрирован: 02. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #896 - 17. Мая 2013 :: 13:09
Печать  
kos писал(а) 17. Мая 2013 :: 08:09:
Уважаемое сообщество.
...skipped...
Прошу здесь покритиковать
- плюсы
- минусы

Плюсы очевидны, и упоминать их смысла не вижу.
Я вообще счастлив, что оно существует, и я могу этим пользоваться.
У автора в подписи отчетливо написано "Отхожу от дел". Какого лешего ему еще заниматься (неблагодарным) трудом по причёсыванию того, что и так бесплатно роздано?
  
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #897 - 22. Мая 2013 :: 15:48
Печать  
1. Выпущена новая версия.
2. Все классы объеденены в один архив

5.0.3 от 22.05.13 г.
- Объект «ПоставщикДанных.ПрямойЗапрос» обновлен до версии 1.8.6 от 22.05.13 г.
  

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


1C++ rocks!

Сообщений: 3
Зарегистрирован: 05. Июня 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #898 - 05. Июня 2013 :: 16:50
Печать  
Дайти жить!
Делаю:
тпОбзвоны = СоздатьОбъект("ПоставщикДанных");
тпОбзвоны.КонтейнерКоманднойПанели      = "кпОбзвоны";
тпОбзвоны.КонтейнерТабличногоПоля      = "тпОбзвоны";
тпОбзвоны.ТипЗначений                        = "Справочник.Обзвоны";

//тут убрано лишнее      

Данные = тпОбзвоны.Данные;
Данные.СпособРедактирования            = 1;
Данные.ИзменятьСпособРедактирования      = 0;
Данные.ОтображатьИерархию                  = 0;
Данные.ПросмотрПоВладельцу                  = 0;
Данные.КнопкаПросмотр                        = 0;
Данные.РежимОтладки                              = 0;
Данные.РежимВыбора                              = 0;
Данные.АвтоОбновление                        = 1;
Данные.ПериодАвтоОбновления                  = 30;
     
Данные.НоваяКолонка("Код");
Данные.НоваяКолонка("ДатаСоздания");
Данные.НоваяКолонка("ФИО");
Данные.НоваяКолонка("Телефон");

ВидыСравнения = СоздатьОбъект("ПоставщикДанных.ВидыСравнения");

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

ЭлементОтбора = Отбор.Получить("Компания");
ЭлементОтбора.Использование                  = 1;
ЭлементОтбора.ИзменятьИспользование      = 0;
ЭлементОтбора.Доступность                  = ?(глПрограммист = 1,1,0);
ЭлементОтбора.Значение                        = глПользователь.Компания;

На экране все работает. Но мне надо произвести обход тех строк справочника, что вошли в отбор. Можно их как-то выгрузить в таблицу значений? Сам никак не могу найти.
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #899 - 06. Июня 2013 :: 02:00
Печать  
kubik писал(а) 05. Июня 2013 :: 16:50:
Дайти жить!
...
На экране все работает. Но мне надо произвести обход тех строк справочника, что вошли в отбор. Можно их как-то выгрузить в таблицу значений? Сам никак не могу найти.


1. ВидыСравнения = СоздатьОбъект("ПоставщикДанных.ВидыСравнения"); - Вроде давно ВидыСравнения переехали в "Объекты_V8" ??
т.е. должно быть так:
Код
Выбрать все
ВидыСравнения = СоздатьОбъект("ВидыСравнения");
ЭлементОтбора.ВидСравнения = ВидыСравнения.Равно;
 



2. Если надо произвести обход отобранных строк - очевидно надо выполнить тот же прямой запрос, что формирует строки списка. Смотри в сторону события "ПриПолученииЗапроса" и коллекции «СтруктураЗапроса»
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #900 - 06. Июня 2013 :: 07:59
Печать  
Для получения текущей выборки см.
Цитата:
Выбрать
Синтаксис: Выбрать(ВекторКолонок)
Параметры:
•      ВекторКолонок – коллекция «СтруктураДанных», или «АссоциативныйВектор» с значениями и ключами равными идентификаторам колонок, или пустое значение, по описанию которой будет произведена выборка из базы данных и возвращена индексированная таблица данных упорядоченная в процессе выборки по значению «РеквизитСортировки».
Возвращаемое значение: объект «ИндексированнаяТаблица» заполненная по результатам выборки.
Описание: Метод производит выборку из базы данных по текущему состоянию табличного поля. Т.о. если на текущий момент существует отбор или же отображены элементы какого либо родителя, то выборка вернет значения, упорядоченные в соответствующем табличному полю порядку, с отбором по значениям и/или родителям (владельцам).


Но будь осторожен, на форме отображается только часть данных необходимых для отображения. А выбрать возвращает все данные, даже которые не отображены. Но условия отборов сохраняются
  

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


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #901 - 06. Июня 2013 :: 08:24
Печать  
vandalsvq писал(а) 06. Июня 2013 :: 07:59:
Для получения текущей выборки см.
[quote]Выбрать
Синтаксис: Выбрать(ВекторКолонок)

От жеж! все проще гораздо Улыбка
  
Наверх
ICQ  
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #902 - 11. Июня 2013 :: 03:25
Печать  
Как всегда туплю. Создал Поставщика с типом значений "Справочник.МойСправочник". Создал колонки в соответствии со структурой справочника. Хочу создать еще доп.колонки. Отображать их, по-видимому, в процедуре "ПриВыводеСтроки".
А создавать где?
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #903 - 11. Июня 2013 :: 04:08
Печать  
ANik писал(а) 11. Июня 2013 :: 03:25:
Как всегда туплю. Создал Поставщика с типом значений "Справочник.МойСправочник". Создал колонки в соответствии со структурой справочника. Хочу создать еще доп.колонки. Отображать их, по-видимому, в процедуре "ПриВыводеСтроки".
А создавать где?


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

	Колонки = ТабличноеПоле.Колонки;
	Колонка = Колонки.Добавить("МояКолонка");
	Колонка.Заголовок = "Моя колонка";
	//Колонка.Данные = "Установлена";
	//Колонка.Ширина = 15;
	//Колонка.ГоризонтальноеВыравнивание = 2;
	//Колонка.Видимость = 1;
 

  
Наверх
ICQ  
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #904 - 11. Июня 2013 :: 05:38
Печать  
Дурака учить - только портить. Колонка появилась, а заполнить при выводе опять туплю.
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #905 - 11. Июня 2013 :: 06:21
Печать  
ANik писал(а) 11. Июня 2013 :: 05:38:
Дурака учить - только портить. Колонка появилась, а заполнить при выводе опять туплю.

Да, а хотел же сразу вывод показать, но поленился  Улыбка

Код
Выбрать все
//======================================================================
Процедура КонтейнерТППриВыводеСтроки(ТП,ОформлениеСтроки, ДанныеСтроки, ТипРегиона)
	//ТекЭлем = ДанныеСтроки.Элемент; //Если Поставщик-Справочник, то ДанныеСтроки = ТекущийЭлемент()
	//Если ТипЗначенияСтр(ТекЭлем) <> "Справочник" Тогда
	//	Возврат;
	//КонецЕсли;
	ОформлениеСтроки.Ячейки.МояКолонка.УстановитьТекст("ТекстМоейКолонки");
КонецПроцедуры // КонтейнерТПЦеныПриВыводеСтроки
 


Но это медленный способ. Идеологически правильно - модифицировать запрос Поставщика и добавлять туда колонки, через соединения в запросе с табличками нужных данных. Где-то в начале топика есть пример от автора - Справочник.Номенклатура + Дерево + с колонкой "Остаток", значение которой - через соединение основного Запроса с табличкой остатков.
  
Наверх
ICQ  
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #906 - 11. Июня 2013 :: 06:32
Печать  
[quote author=Dolly_EV link=1285520767/900#905
Идеологически правильно - модифицировать запрос Поставщика . [/quote]
Это я хотел следующим вопросом  Подмигивание
В справочнике есть реквизит "Материал" (тип "Справочник.Материалы") и хотелось бы выводить в колонки его код и кое-какие реквизиты. Как зацепить?
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #907 - 11. Июня 2013 :: 06:42
Печать  
Смотри в доке методы ДобавитьКолонкуДанных и ДобавитьСоединениеДанных(ИмяСоединения,ТекстЗапроса)
  
Наверх
ICQ  
IP записан
 
Inteco
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 10. Декабря 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #908 - 13. Июня 2013 :: 09:41
Печать  
Подскажите НУБу как изменить доступность некоторых кнопок из стандарного набора?
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #909 - 14. Июня 2013 :: 00:20
Печать  
Inteco писал(а) 13. Июня 2013 :: 09:41:
Подскажите НУБу как изменить доступность некоторых кнопок из стандарного набора?


1. метод объекта «ПоставщикДанных.КоманднаяПанель»

Доступность
Синтаксис: Доступность(Идентификатор, Пометка)
Параметры:
•      Идентификатор – Идентификатор кнопки или ее номер.
•      Пометка – Число (1,0). Признак доступности кнопки.
Возвращаемое значение: отсутствует
Описание: Устанавливает значение «Доступность» у переданной кнопки. При этом изменение командной панели происходит автоматически.

2. методы объекта-наследника «ПоставщикДанных.ТабличноеПоле»

ИзменятьСоставСтрок
Синтаксис: ИзменятьСоставСтрок
Доступ: Чтение и запись
Тип: Число. 1 – разрешить, 0 – запретить.
Описание: Устанавливает и возвращает значение доступности изменения состава строк. Если значение = 0, то кнопки командной панели «Добавить», «Скопировать», «Удалить» недоступны, отсутствуют команды в контекстном меню, а также не происходит обработка событий клавиатуры.

ИзменятьПорядокСтрок
Синтаксис: ИзменятьПорядокСтрок
Доступ: Чтение и запись
Тип: Число. 1 – разрешить, 0 – запретить.
Описание: Устанавливает и возвращает значение доступности изменения порядка строк. Если значение = 0, то кнопки командной панели «СтрокуВверх»*, «СтрокуВниз»*, «ПоВозрастанию»*, «ПоУбыванию»* недоступны и отсутствуют команды в контекстном меню (* - данные кнопки присутствуют только у расширения «ИндексированнаяТаблица» и «СписокЗначений»).
  
Наверх
ICQ  
IP записан
 
Inteco
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 10. Декабря 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #910 - 14. Июня 2013 :: 06:22
Печать  
Если я правильно понял, это так?
     ПдКп=СоздатьОбъект("ПоставщикДанных.КоманднаяПанель");
     ПдКп.доступность("ОтключитьОтбор",0);
     ПдКп.обновить();
Не работатет, хотя ставил и в ПослеОткрытия()
и в УстановитьПоставщикаДанныхЖурналДокументов()
Не ругается, но и не работает  Печаль
Нужно: сделать недоступными (при определенных условиях) кнопки отборов: "НастроитьОтбор","отборПоКолонке",
"ОтключитьОтбор"
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #911 - 14. Июня 2013 :: 07:06
Печать  
Не, не так.
вот так:
Код
Выбрать все
	ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
	ПоставщикДанных.ТипЗначений = "Справочник.МойСправочник";
	ПоставщикДанных.КонтейнерКоманднойПанели = "КонтейнерКП";
	ПоставщикДанных.КонтейнерТабличногоПоля = "КонтейнерТП";
...........................
	  ПдКп = ПоставщикДанных.КоманднаяПанель;
	  ПдКп.Доступность("ОтключитьОтбор",0);
 

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


1C++ rocks!

Сообщений: 6
Зарегистрирован: 10. Декабря 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #912 - 14. Июня 2013 :: 12:52
Печать  
Процедура УстановитьПоставщикаДанныхЖурналДокументов()
     ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
     ПоставщикДанных.КонтейнерТабличногоПоля = "ЖурналСписокДополнительныйЖурнал";
     ПоставщикДанных.КонтейнерКоманднойПанели = "ИДКоманднаяПанель";
     ПоставщикДанных.ТипЗначений = "Журнал.КадровыеДокументы";
     
     ПдКп=ПоставщикДанных.КоманднаяПанель;
     ПдКп.Доступность("ОтключитьОтбор",0);
ругается:

ПдКп=ПоставщикДанных.КоманднаяПанель;
{Отчет.ЖурналКадровыеДокументы.Форма.Модуль(18)}: Поле агрегатного объекта не обнаружено (КоманднаяПанель)
  
Наверх
 
IP записан
 
Inteco
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 10. Декабря 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #913 - 14. Июня 2013 :: 13:48
Печать  
Ура!!!! Нужно было вот так:
     КП = ПоставщикДанных.ТабличноеПоле.КоманднаяПанель;
     КП.Доступность("ОтключитьОтбор",0);
     КП.Доступность("ОтборПоКолонке",0);
     КП.Доступность("НастроитьОтбор",0);
Очень довольный
  
Наверх
 
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #914 - 17. Июня 2013 :: 02:50
Печать  
Еще вопрос по поставщику данных (Справочник)
1. Можно ли сделать часть колонок недоступными для редактирования?
2. Одна колонка имеет вид "Справочник" неопределенного вида. Есть ли аналог метода "ВидыДляВыбора"?
В противном случае придется редактировать в диалоге. Тоже выход, но хотелось бы в списке.
  
Наверх
 
IP записан
 
accuman
YaBB Newbies
*
Отсутствует



Сообщений: 6
Местоположение: Витебск
Зарегистрирован: 02. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #915 - 18. Июня 2013 :: 05:56
Печать  
ANik писал(а) 17. Июня 2013 :: 02:50:
Еще вопрос по поставщику данных (Справочник)
1. Можно ли сделать часть колонок недоступными для редактирования?

Ага, тоже сильно этим интересуюсь. Если кто в теме - отзовитесь плиз.
  
Наверх
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #916 - 18. Июня 2013 :: 08:06
Печать  
accuman писал(а) 18. Июня 2013 :: 05:56:
ANik писал(а) 17. Июня 2013 :: 02:50:
Еще вопрос по поставщику данных (Справочник)
1. Можно ли сделать часть колонок недоступными для редактирования?

Ага, тоже сильно этим интересуюсь. Если кто в теме - отзовитесь плиз.

Разобрался. метод табличного поля ТППередНачаломИзменения(ТП,Флаг) Флаг в 0 для недоступных колонок. Оно конечно работает. Теперь ясно - юзать методы табличного поля а поставщик только для автоматической связки
  
Наверх
 
IP записан
 
accuman
YaBB Newbies
*
Отсутствует



Сообщений: 6
Местоположение: Витебск
Зарегистрирован: 02. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #917 - 18. Июня 2013 :: 12:12
Печать  
ANik писал(а) 18. Июня 2013 :: 08:06:
accuman писал(а) 18. Июня 2013 :: 05:56:
ANik писал(а) 17. Июня 2013 :: 02:50:
Еще вопрос по поставщику данных (Справочник)
1. Можно ли сделать часть колонок недоступными для редактирования?

Ага, тоже сильно этим интересуюсь. Если кто в теме - отзовитесь плиз.

Разобрался. метод табличного поля ТППередНачаломИзменения(ТП,Флаг) Флаг в 0 для недоступных колонок.

О, очень спасибо. А то я час ухайдокал, пока понял, чего мне не хватает.
  
Наверх
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #918 - 19. Июня 2013 :: 09:36
Печать  
Понадобилось при редактировании одного реквизита обнулять другой - не получается. кучу вариантов перепробовал
Процедура ТПМатериалыПослеРедактированияЗначения(ТП, стр, кол, рег)
     Если кол.Имя = "ВидНорматива" Тогда
           ВидСправочника=глПолучитьВидСправочнкаЭлементаЗатрат(Стр.ВидНорматива);
           Если стр.Норматив.Вид()<>ВидСправочника Тогда
                 ТП.ТекущиеДанные.ТекущийЭлемент.Норматив="";
                 ПоставщикДанныхМатериалы.Обновить();
           КонецЕсли;
     КонецЕсли;
КонецПроцедуры // ПослеРедактированияЗначения(ТабличноеПоле, стр, кол, рег)
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #919 - 19. Июня 2013 :: 11:14
Печать  
ANik писал(а) 19. Июня 2013 :: 09:36:
Понадобилось при редактировании одного реквизита обнулять другой - не получается. кучу вариантов перепробовал
Процедура ТПМатериалыПослеРедактированияЗначения(ТП, стр, кол, рег)
     Если кол.Имя = "ВидНорматива" Тогда
           ВидСправочника=глПолучитьВидСправочнкаЭлементаЗатрат(Стр.ВидНорматива);
           Если стр.Норматив.Вид()<>ВидСправочника Тогда
                 ТП.ТекущиеДанные.ТекущийЭлемент.Норматив="";
                 ПоставщикДанныхМатериалы.Обновить();
           КонецЕсли;
     КонецЕсли;
КонецПроцедуры // ПослеРедактированияЗначения(ТабличноеПоле, стр, кол, рег)


Код
Выбрать все
Процедура ТПМатериалыПередОкончаниемРедактирования(ТП, стр, кол, рег, лЗначение, ФСО)
	Если кол.Имя = "ВидНорматива" Тогда
		ВидСправочника=глПолучитьВидСправочнкаЭлементаЗатрат(Стр.ВидНорматива);
		Если стр.Норматив.Вид()<>ВидСправочника Тогда
			стр.Норматив="";
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры // ПередОкончаниемРедактирования
 



Ну или стр.Норматив=ПолучитьПустоеЗначение("Справочник."+ВидСправочника);
Но, имхо, как-то с логикой изменения тут не так...
  
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #920 - 19. Июня 2013 :: 12:13
Печать  
Если надо "при редактировании одного реквизита обнулять другой", то все просто, пишете в базу, откуда берутся данные - пустоту Подмигивание Ну и, для меньшей перерисовки, визуально очищаете соответствующее поле.
  
Наверх
ICQ  
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #921 - 20. Июня 2013 :: 02:40
Печать  
Получился такой код:
Процедура ТПМатериалыПослеРедактированияЗначения(ТП, стр, кол, рег)
     Если кол.Имя = "ВидНорматива" Тогда
           ВидСправочника=глПолучитьВидСправочнкаЭлементаЗатрат(Стр.ВидНорматива);
           Если стр.Норматив.Вид()<>ВидСправочника Тогда
                 ТемпСпр=СоздатьОбъект("Справочник.ПроектНорм");
                 ТемпСпр.НайтиЭлемент(Стр.ТекущийЭлемент());
                 ТемпСпр.Норматив="";
                 ТемпСпр.Записать();
                 ПоставщикДанныхМатериалы.Обновить();
           КонецЕсли;
     КонецЕсли;
КонецПроцедуры // ПослеРедактированияЗначения(ТабличноеПоле, стр, кол, рег)
Мда - кривенько
Можно ли используя Поставщик.Справочник отображать с группировками по определенному полю в иерархическом виде?
То ли все-таки в Йокселе надо было рисовать...
Так ведб поставщик освоить охота, чтобы меньше телодвижений делать.
  
Наверх
 
IP записан
 
barbitura
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #922 - 20. Июня 2013 :: 11:58
Печать  
Пожалуйста приведите пример можно ли сделать таблицу значений или табличное поле источником данных. спасибо за ранее.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

1. Чтобы указывать виды для выбора, родителей или владельцев см. в документации ПоставщикДанных.ТабличноеПоле.Реквизиты. В кратце: в коллекции хранятся все колонки, в них можно задать настройки. Только просмотр туда не добавлял, но в принципе через нее можно сделать много чего.
2. ANik, если источником данных является запрос (справочники, документы, журналы и т.п.) то как изволите понимать команду ТекущиеДанные.ТекущийЭлемент.Норматив = ""? Ни 8-ка, ни 7-ка так не умеют. Так что менять надо источник, а поставщик лишь вызывать перечитывание строк. Собственно не кривенько это, а вполне нормально.
И кстати лучше использовать не метод "Обновить", а метод "ОбновитьСтрокиТабличногоПоля". Обновить вызывает полное перестроение и запроса и табличного поля и вообще много чего служебного. А Обновить строки лишь перечитывание текущей порции данных + пересчет подвала если он есть. Что во много раз эффективнее.
3. Табличное поле - это визуальный элемент, и источником данных выступать не может. А ТаблицаЗначений может, см. в документации расширение "ИндексированнаяТаблица". В ИТ выгружай свою ТЗ и все.
  

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


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #924 - 24. Июня 2013 :: 09:57
Печать  
vandalsvq писал(а) 20. Июня 2013 :: 12:20:
3. Табличное поле - это визуальный элемент, и источником данных выступать не может. А ТаблицаЗначений может, см. в документации расширение "ИндексированнаяТаблица". В ИТ выгружай свою ТЗ и все.

И в процессе правки этой индексированной таблицы записывать изменения в справочник?
  
Наверх
 
IP записан
 
DenisShiln
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 26. Июня 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #925 - 26. Июня 2013 :: 17:20
Печать  
Есть реквизит справочника Имя: "Счет" Тип: "Документ.Счет", как вывести Счет.Контрагент.Наименование ?
  
Наверх
 
IP записан
 
accuman
YaBB Newbies
*
Отсутствует



Сообщений: 6
Местоположение: Витебск
Зарегистрирован: 02. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #926 - 26. Июня 2013 :: 18:28
Печать  
DenisShiln писал(а) 26. Июня 2013 :: 17:20:
Есть реквизит справочника Имя: "Счет" Тип: "Документ.Счет", как вывести Счет.Контрагент.Наименование ?

ДобавитьСоединениеДанных
Синтаксис: ДобавитьСоединениеДанных(ИмяСоединения,ТекстЗапроса)
Параметры:
•      ИмяСоединения – имя соединения по которому будет происходить дальнейшая идентификация.
•      ТекстЗапроса – текст запроса в синтаксисе КОП «ПрямойЗапрос» для добавления к запросу поставщика данных. Например: «left join Справочник.Договоры as СпрДог $nolock on $ТекущийОбъект.Договор = $СпрДог.ТекущийЭлемент».
  
Наверх
IP записан
 
DenisShiln
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 26. Июня 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #927 - 27. Июня 2013 :: 08:10
Печать  
accuman писал(а) 26. Июня 2013 :: 18:28:
DenisShiln писал(а) 26. Июня 2013 :: 17:20:
Есть реквизит справочника Имя: "Счет" Тип: "Документ.Счет", как вывести Счет.Контрагент.Наименование ?

ДобавитьСоединениеДанных
Синтаксис: ДобавитьСоединениеДанных(ИмяСоединения,ТекстЗапроса)
Параметры:
•      ИмяСоединения – имя соединения по которому будет происходить дальнейшая идентификация.
•      ТекстЗапроса – текст запроса в синтаксисе КОП «ПрямойЗапрос» для добавления к запросу поставщика данных. Например: «left join Справочник.Договоры as СпрДог $nolock on $ТекущийОбъект.Договор = $СпрДог.ТекущийЭлемент».


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



все работает. Верен ли подход? или можно проще?
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #928 - 27. Июня 2013 :: 08:40
Печать  
Имхо, проще уже не можно и подход верен))
  
Наверх
ICQ  
IP записан
 
accuman
YaBB Newbies
*
Отсутствует



Сообщений: 6
Местоположение: Витебск
Зарегистрирован: 02. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #929 - 28. Июня 2013 :: 17:45
Печать  
Улыбка Я, как апологет "правильных подходов", разделил бы каждый join на отдельное соединение. Ну так, для профилактики. Но раз работает - лучше не трогать Подмигивание
  
Наверх
IP записан
 
Zhuravlik
YaBB Newbies
*
Отсутствует


live 86 :)

Сообщений: 14
Зарегистрирован: 28. Января 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #930 - 02. Июля 2013 :: 14:26
Печать  
Добрый день. Перенес все класы из архива в копию конфы (в смысле прописал в самой конфигурации как @md), и запустил пример с справочником "Контрагенты". В нем не работают кнопки "отбор", "Список табл. поля", в общем я так понял все, которые вызывают вспомогательные формы.
Если запускаю конфу, где классы просто скопировал в иб, все это работает.
Не могу понять что сделал не так, подскажите куда копнуть?
Версия 1С++ - 3.2.3.20, спасибо заранее...
  
Наверх
 
IP записан
 
Попытка1С
1c++ donor
Отсутствует


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #931 - 08. Июля 2013 :: 11:46
Печать  
Всем привет.

Киньте пжл путь на тестовую конфигурацию, где можно глянуть журнал документов на ТП.
Что-то не могу найти ссылку.

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


live 86 :)

Сообщений: 14
Зарегистрирован: 28. Января 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #932 - 08. Июля 2013 :: 11:51
Печать  
Класс "ПоставщикДанных" - обсуждения, примеры, вопросы: http://www.1cpp.ru/forum/YaBB.pl?num=1248941896
  
Наверх
 
IP записан
 
Попытка1С
1c++ donor
Отсутствует


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #933 - 08. Июля 2013 :: 11:57
Печать  
Там куча страниц просматривать) У тебя нет просто ссылки?)
  
Наверх
 
IP записан
 
Zhuravlik
YaBB Newbies
*
Отсутствует


live 86 :)

Сообщений: 14
Зарегистрирован: 28. Января 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #934 - 08. Июля 2013 :: 12:00
Печать  
Второй пост, "Пример брать ТУТ".
(http://www.1cpp.ru/forumfiles/Attachments/Example.rar)
  
Наверх
 
IP записан
 
Попытка1С
1c++ donor
Отсутствует


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #935 - 08. Июля 2013 :: 12:09
Печать  
Спасибо! проглядел)
  
Наверх
 
IP записан
 
Попытка1С
1c++ donor
Отсутствует


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #936 - 10. Июля 2013 :: 08:59
Печать  
Всем привет.

Помогите разобраться с табличным полем.
Создал обработку для журнала.

На форме разместил контейнер командной панели и контейнер табличного поля.
Через "НоваяКолонка" добавил данные реквизитов которые есть в документах.

Есть два вопроса:

1) Как добавить колонку журнала, которая должна возвращать значение из функции.
Вот функция которая у меня работает в обычном журнале 1с.

Функция ДокОплаты()
     ДокОплаты = "";
     ТаблицаРКО = глВернутьПодчиненныеДокументы(ТекущийДокумент,"РасходныйОрдер");
     ТаблицаРКО.ВыбратьСтроки();
     Пока ТаблицаРКО.ПолучитьСтроку() = 1 Цикл
           ДокОплаты = ТаблицаРКО.Док;
           Прервать;
     КонецЦикла;
     АтрФ = ФормаРасш.ПолучитьАтрибут("Долг");
     АтрФ.Значение = Формат((ТекущийДокумент.СуммаДокумента - ДокОплаты.Сумма),"Ч015.2");
     Возврат ДокОплаты.ТекущийДокумент();
КонецФункции

Данная функция, заполняет две колонки в журнале, в одной документов в другой долг.

Как это реализовать с помощью табличного поля?

2) Как можно привязать границы ТП, к границам формы, чтобы при растягивании все это дело растягивалось нормально.

Спасибо.
  
Наверх
 
IP записан
 
DenisShiln
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 26. Июня 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #937 - 08. Августа 2013 :: 15:23
Печать  
Не подскажите как работать с контекстным меню для табличного поля...
Процедура формирования необходимого меню (взависимости от строки оно разное)
Код
Выбрать все
Процедура ТабличноеПолеЗаказыПриФормированииКонтекстногоМеню(ТабличноеПоле, КонтекстноеМеню, ФСО)
	Сообщить(ТабличноеПоле);

	ТекущиеДанные = ДанныеЗ.ТекущиеДанные;

	КонтекстноеМеню.ДобавитьЗначение(1,"Изменить материал");
	КонтекстноеМеню.ДобавитьЗначение("2","Дублировать дерево спецификаций");
	КонтекстноеМеню.ДобавитьЗначение("-");


КонецПроцедуры
 


ТабличноеПоле - Пусто ????
Меню выводится норм... Вопрос как отловить что выбрано и можно ли в данном меню делать неактивные строки и ставить допустим галочки?
  
Наверх
 
IP записан
 
ted
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 07. Февраля 2011
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #938 - 09. Августа 2013 :: 10:13
Печать  
«ПоставщикДанных.Справочник»
Как программно установить курсор на нужный элемент?
Спасибо.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #939 - 10. Августа 2013 :: 11:41
Печать  
ted, ПоставщикДанных.ТабличноеПоле.ТекущаяСтрока = ЭлементСправочника;
  

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


1C++ rocks!

Сообщений: 41
Зарегистрирован: 07. Февраля 2011
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #940 - 10. Августа 2013 :: 13:37
Печать  
vandalsvq писал(а) 10. Августа 2013 :: 11:41:
ted, ПоставщикДанных.ТабличноеПоле.ТекущаяСтрока = ЭлементСправочника;


пасиб. в понедельник проверю Подмигивание
  
Наверх
 
IP записан
 
ted
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 07. Февраля 2011
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #941 - 12. Августа 2013 :: 06:29
Печать  
vandalsvq писал(а) 10. Августа 2013 :: 11:41:
ted, ПоставщикДанных.ТабличноеПоле.ТекущаяСтрока = ЭлементСправочника;


Подскажи еще, пожалуйста: можно ли в таком отборе:
ПоставщикДанных4.ТабличноеПоле.Отбор.ТекущийЭлемент.Использование=1;
ПоставщикДанных4.ТабличноеПоле.Отбор.ТекущийЭлемент.ВидСравнения = "ВСписке";
ПоставщикДанных4.ТабличноеПоле.Отбор.ТекущийЭлемент.Значение=СписокТочек;
ПоставщикДанных4.Обновить();  

получить отображение только элементов. (чтобы папки не отображались - так как большинство из них пусты) ?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #942 - 13. Августа 2013 :: 16:05
Печать  
добавь еще условие ЭтоГруппа = 0
  

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


1C++ rocks!

Сообщений: 3
Зарегистрирован: 05. Июня 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #943 - 20. Августа 2013 :: 17:35
Печать  
Вопрос по Подвалу и ТабличноеПоле, есть код:

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

     //тут инициализация всякая

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

На форме в табличном поле появляется подвал и он заполнен значениями, потом меняем фильтры на форме и вызываю:

Процедура тпОбзвоныОбновитьТаблицу()

     тпОбзвоны.Обновить();
     ПолучитьРезультатОтветов();
     тпОбзвоны.ТабличноеПоле.Подвал.ОбновитьСтроки();
     
КонецПроцедуры // тпОбзвоныОбновитьТаблицу

Проблема: значения в Подвале не обновляются, хотя в тзОтветыИтоги они изменяются, что делаю не так?
И второй вопрос: при печати по штатной кнопочке с принтером подвал совсем не выводится на печать?

Версия 3.2.3.20
  
Наверх
 
IP записан
 
Igor Nikolaenko
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 47
Зарегистрирован: 01. Апреля 2010
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #944 - 20. Августа 2013 :: 21:45
Печать  
Объект ПоставщикДанных с типом значения Справочник:
     тпОбзвоны = СоздатьОбъект("ПоставщикДанных");
     тпОбзвоны.ТипЗначений = "Справочник.Обзвоны";
сам управляет подвалом.

Когда создаётся колонка данных можно указать, что по ней нужно выводить итог:
     Данные = тпОбзвоны.Данные;
     Данные.НоваяКолонка("ЧисловойРеквизит", 1); // 1 - вывести итог по колонке

В результате класс автоматически выведет подвал и покажет сумму по указанной колонке.

В случае, если Вы сами хотите управлять всеми параметрами ТабличногоПоля
лучше создавать его самому:
     тпОбзвоны = ОбъектФорма.СоздатьЭлементУправления("ТабличноеПоле","тпОбзвоны");
  
Наверх
 
IP записан
 
kubik
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 3
Зарегистрирован: 05. Июня 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #945 - 21. Августа 2013 :: 06:36
Печать  
Спасибо Игорю Николаенко, заработало так:
Код
Выбрать все
Процедура тпОбзвоныОбновитьТаблицу()

     тпОбзвоны.Обновить();
     ПолучитьРезультатОтветов();

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



Вдруг кому тоже будет полезно.
  
Наверх
 
IP записан
 
ted
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 07. Февраля 2011
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #946 - 23. Августа 2013 :: 08:54
Печать  
Подскажите: можно ли в ПоставщикеДанных ДеревоЗначений программно открывать/закрывать отдельные ветки?
Если можно, то как?
  
Наверх
 
IP записан
 
badaboom
YaBB Newbies
*
Отсутствует



Сообщений: 2
Зарегистрирован: 27. Августа 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #947 - 27. Августа 2013 :: 08:57
Печать  
ted писал(а) 12. Августа 2013 :: 06:29:
vandalsvq писал(а) 10. Августа 2013 :: 11:41:
ted, ПоставщикДанных.ТабличноеПоле.ТекущаяСтрока = ЭлементСправочника;


Подскажи еще, пожалуйста: можно ли в таком отборе:
ПоставщикДанных4.ТабличноеПоле.Отбор.ТекущийЭлемент.Использование=1;
ПоставщикДанных4.ТабличноеПоле.Отбор.ТекущийЭлемент.ВидСравнения = "ВСписке";
ПоставщикДанных4.ТабличноеПоле.Отбор.ТекущийЭлемент.Значение=СписокТочек;
ПоставщикДанных4.Обновить();  

получить отображение только элементов. (чтобы папки не отображались - так как большинство из них пусты) ?


vandalsvq писал(а) 13. Августа 2013 :: 16:05:
добавь еще условие ЭтоГруппа = 0


Такая же задача, с условием ЭтоГруппа = 0, группы все равно отображаются.

Upd. Вопрос снимается. Решение нашел изменив код в ПоставщикДанных.Справочник.ert
строка 177 :
Код
Выбрать все
	Если (МетаСправочник.КоличествоУровней > 1)и(ИерархическийПросмотр = 1) Тогда
		ТекстОтбора = "(" + ТекстОтбора + " or [ОсновнаяТаблица].isfolder = 1)";
	КонецЕсли; 



При отключении иерархического просмотра показывает только элементы.
« Последняя редакция: 27. Августа 2013 :: 12:55 - badaboom »  
Наверх
ICQ  
IP записан
 
Armaros
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 1
Местоположение: Киев
Зарегистрирован: 16. Ноября 2011
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #948 - 11. Сентября 2013 :: 06:55
Печать  
Вадимко писал(а) 27. Ноября 2012 :: 10:46:
Не работает командная панель в поставщике данных
Кнопки создались, нажимаются, но никакой реакции нет
....
Не заходит в ButtonClick
Куда копать? Что в системе подправить?


На днях столкнулся с подобной проблемой. Система Windows Server 2008. Рекомендованные здесь способы не помогли решить проблему Нерешительный . Причина была в очередной "каке" от Microsoft  Озадачен - обнаружил, что сразу перед возникновением данной проблемы сервер установил большой пакет обновлений. Конкретное обновление найдено - KB2859537
...после удаления данного пакета все опять работает.  Очень довольный

P.S. Проблемы могут так же возникать и на машинах с Win-7
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #949 - 12. Сентября 2013 :: 07:55
Печать  
Уважаемые специалисты, подскажите пожалуйста, каким способом можно получить список всех выведенных документов для поставщика данных типа Журнал или Документ, с учетом всех наложенных отборов. Для индексированной таблицы можно сделать вот так: пд.Данные.ИндексированнаяТаблица, а как это сделать для документа - непонятно.  Спасибо за помощь!
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #950 - 12. Сентября 2013 :: 12:00
Печать  
А по простому - никак.

Если объяснить подробнее, то Поставщик данных берет входной запрос, примерно прикидывает, сколько строк надо отобразить на экране и получает из базы по установленному запросу +- нужное количество строк, которые и отображает на экране. Сколько же там реально в базе строк, Поставщик не знает.

Так что если очень надо, то 1. Вылавливаешь из Поставщика Текст запроса. 2. Вылавливаешь из Поставщика наложенные отборы. 3. Формируешь из этого свой запрос к базе. 4. Profit!
  
Наверх
ICQ  
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #951 - 12. Сентября 2013 :: 16:38
Печать  
ildary писал(а) 12. Сентября 2013 :: 07:55:
Уважаемые специалисты, подскажите пожалуйста, каким способом можно получить список всех выведенных документов для поставщика данных типа Журнал или Документ, с учетом всех наложенных отборов. Для индексированной таблицы можно сделать вот так: пд.Данные.ИндексированнаяТаблица, а как это сделать для документа - непонятно.  Спасибо за помощь!

Код
Выбрать все
ПД.Выбрать() 

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #952 - 13. Сентября 2013 :: 06:40
Печать  
Подскажите пожалуйста, как правильно вызвать метод Выбрать()? Делаю пд.Выбрать() - получаю "Поле агрегатного объекта не обнаружено (Выбрать)", при этом в исходниках данный метод вижу, версия классов Поставщик данных: 5.0.3 от 22.05.13 г.

p.s. разобрался - надо делать пд.Данные.Выбрать(); - и наступило мне щастие! Спасибо всем огромное!!!!!
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #953 - 13. Сентября 2013 :: 07:42
Печать  
Уважаемые специалисты, подскажите еще пожалуйста, после обновления классов ПоставщикДанных на свежайшую версию - пропала следующая вещь: отображение значка фильтра в отфильтрованной колонке, (например после нажатия на кнопку "Отфильтровать по текущему значению". Посоветуйте, что надо поправить, чтобы вернуть значок фильтра в саму колонку?

И еще - каким образом можно скрыть подвал табличного поля?
« Последняя редакция: 13. Сентября 2013 :: 11:33 - ildary »  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #954 - 18. Сентября 2013 :: 06:24
Печать  
Подвал можно скрыть через

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

И еще вопрос - почему отключена работа галки ВыводитьПиктограммуОтбора? Появился какой-то новый механизм? С ней очень удобно видеть какие фильтры уже включены.
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #955 - 23. Сентября 2013 :: 14:25
Печать  
Уважаемые специалисты, подскажите пожалуйста, как можно применить механизм отбора для дополнительного поля у поставщика данных типа Документ?

Само поле получается вот так:
Выводится документ Заявка, в шапке которого есть реквизит Поездка, тип "Документ.Поездка", у которого в шапке есть поле Статус. Для вывода статуса используется следующая конструкция:

Данные.ДобавитьСоединениеДанных( "Документ_Поездка","JOIN Документ.ЗаявкаПокупателя as ДокЗаявка ON ДокЗаявка.iddoc = ТекущийОбъект.iddoc LEFT JOIN Документ.Поездка as ДокПоездка ON ДокПоездка.iddoc = ДокЗаявка.Поездка" );
,1);
Данные.НоваяКолонка( "Статус" );
                 
Вывод поля статус работает, но не работает отбор по полю статус - т.е. при отборе по любому значению выводятся все заявки. Что можно сделать для того, чтобы был фильтр по полю статус?
  
Наверх
 
IP записан
 
ted
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 07. Февраля 2011
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #956 - 02. Октября 2013 :: 10:48
Печать  
Использую ПоставщикДанных ДеревоЗначений. При сворачивании узла 1С падает. Отладчиком нашел место падения - это процедура СвернутьУзелДерева(ПолныйПуть) на строчке ТаблицаДанных.УдалитьСтроку(СтрокаУдаления).  Версия = 5.0.2 24.04.2013. Куда дальше идти?
  
Наверх
 
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #957 - 17. Октября 2013 :: 03:34
Печать  
Падает 1С при попытке переопределить типзначения у поставщика данных - справочника (пытаюсь при выборе значения открыть подчиненный справочник в этом же поле. Не подскажете как надо (или недьзя) ?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #958 - 17. Октября 2013 :: 05:17
Печать  
Отключить поставщика, подключить поставщика. Усё.
  
Наверх
 
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #959 - 17. Октября 2013 :: 05:39
Печать  
Для тупых - как отключить? По новой создать?
  
Наверх
 
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #960 - 17. Октября 2013 :: 06:54
Печать  
И вроде ответили что все просто. а толку Смущённый
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #961 - 17. Октября 2013 :: 08:04
Печать  
ТабличноеПоле.ПоставщикДанных = "";
ТабличноеПоле.ПоставщикДанных =НовыйПоставщикТабличногоПоля;
  
Наверх
 
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #962 - 17. Октября 2013 :: 09:31
Печать  
Перем ПД;
Процедура ПослеСозданияФормы()
     ПД = СоздатьОбъект("ПоставщикДанных");
     ПД.ТипЗначений = "Справочник.МестаХранения";
     ПД.КонтейнерКоманднойПанели = "КП";
     ПД.КонтейнерТабличногоПоля = "ТП";
     Данные = ПД.Данные;
     Данные.СоздатьКнопкиПоУмолчанию();
     Данные.ТолькоПросмотр=1;
     Данные.РежимВыбора=1;
     ТабличноеПоле = ПД.ТабличноеПоле;
     Данные.НоваяКолонка("Наименование","Строка");
     ПД.Обновить();
КонецПроцедуры
Процедура ТППриВыбореЗначения(ТабличноеПоле, ПереданноеЗначение)
     ТабличноеПоле.ПоставщикДанных = "";
КонецПроцедуры
Первая часть решается - таблица очищается
А вот нового поставщика как создать - не понял
Вариантов перепробовал много
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #963 - 17. Октября 2013 :: 11:49
Печать  
В этом классе не подскажу, ибо не использую.
Думаю, там всё тоже самое, что и с обычным табличным полем должно быть, только методы чутка по-другому могут быть названы.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #964 - 17. Октября 2013 :: 16:26
Печать  
А если далее:
ПД.ТипЗначений = "Справочник.Подчиненный";
...
может еще какие параметры по новому установить
...
...и далее
ТабличноеПоле.ПоставщикДанных=ПД;
  
Наверх
ICQ  
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #965 - 18. Октября 2013 :: 05:33
Печать  
Процедура ТППриВыбореЗначения(ТабличноеПоле, ПереданноеЗначение)
     КлючПорядка = "Наименование,НомерСтрокиСправочника";
     ТекстЗапроса="
     |select
     |sc81.row_id as [НомерСтрокиСправочника]
     |,case when sc81.ismark = 1 then 3 else 2 end as [Пиктограмма]
     |,0 as [ЭтоГруппа]
     |,case when sc81.ismark = 1 then 1 else 0 end as [ПометкаУдаления]
     |,sc81.id as [ТекущийЭлемент $Справочник.Единицы]
     |,sc81.code as [Код]
     |,sc81.descr as [Наименование]
     |from sc81 as sc81 (nolock)
     |";
     ТабличноеПоле.ПоставщикДанных.УстТекстЗапроса(ТекстЗапроса);
     ТабличноеПоле.ПоставщикДанных.УстИДПоле("ТекущийЭлемент");
     ТабличноеПоле.ПоставщикДанных.УстКлючПорядка(КлючПорядка);
КонецПроцедуры // ТПСкладыПриВыбореЗначения
вывело другой справочник но при этом ругалось при выводе строки и при попытке работать с контекстным меню и командной строкой. похоже - все плохо
  
Наверх
 
IP записан
 
DmSk
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Барнаул
Зарегистрирован: 28. Марта 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #966 - 18. Октября 2013 :: 07:52
Печать  
Подскажите пож, при работе с журналом по умолчанию колонки создаются в порядке:
1) № документа,
2) Дата документа,
3) Вид документа,
4) Время Документа"

нужно изменить их порядок на 2,4,1,3 и чтобы это по умолчанию выводилось у всех пользователей ?
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #967 - 21. Октября 2013 :: 05:05
Печать  
DmSk писал(а) 18. Октября 2013 :: 07:52:
Подскажите пож, при работе с журналом по умолчанию колонки создаются в порядке:
1) № документа,
2) Дата документа,
3) Вид документа,
4) Время Документа"

нужно изменить их порядок на 2,4,1,3 и чтобы это по умолчанию выводилось у всех пользователей ?


1C++ :: Работа с Табличным Полем
КолонкиТабличногоПоля :: Сдвинуть / Move
Синтаксис: Сдвинуть(Индекс, Смещение)
Параметры:
Индекс - тип: Число, индекс колонки, которую необходимо сдвинуть;
Смещение - тип: Число, если положительное, колонка сдвигается вправо (ее индекс увеличивается), если отрицательное, сдвигается влево.
Возвращает: тип: КолонкаТабличногоПоля - созданная колонка.
Описание: Сдвигает позицию колоки на указанное смещение.
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #968 - 25. Октября 2013 :: 09:13
Печать  
Выпущено небольшое обновление. Выложено в главной теме.
Для SQL-щиков обязательно. Подробное описание в документации.
Наконец то "Быстрая обработка движений" исправлена Улыбка

Класс "ПоставщикДанных"
5.0.4 от 25.10.13 г.
- Исправлены выявленные ошибки

Классы "Объекты_v8"
25.10.13 г.
- Исправлены выявленные ошибки
  

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


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #969 - 28. Октября 2013 :: 06:29
Печать  
Для поставщика данных.справочник добавил кнопку в командную панель. она отобразилась. как теперь отловить нажатие этой кнопки?
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #970 - 28. Октября 2013 :: 07:09
Печать  
ANik писал(а) 28. Октября 2013 :: 06:29:
Для поставщика данных.справочник добавил кнопку в командную панель. она отобразилась. как теперь отловить нажатие этой кнопки?

Добавил как?
через Метод "Кнопка"? там 5-м параметром - имя процедуры кнопки. Создаешь одноименную процедуру, и она будет вызываться при нажатии.
  
Наверх
ICQ  
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #971 - 28. Октября 2013 :: 07:15
Печать  
Именно так и делал. не реагирует.
     ПДСклады = СоздатьОбъект("ПоставщикДанных");
     ПДСклады.ТипЗначений = "Справочник.МестаХранения";
     ПДСклады.КонтейнерКоманднойПанели = "КПСклады";
     ПДСклады.КонтейнерТабличногоПоля = "ТПСклады";
     Данные = ПДСклады.Данные;
     Данные.СоздатьКнопкиПоУмолчанию();
     Данные.ТолькоПросмотр=0;
     Данные.РежимВыбора=0;
     КоманднаяПанель=Данные.КоманднаяПанель;
     Кнопки=Данные.КоманднаяПанель.Кнопки;
     Кнопка=КоманднаяПанель.Кнопка("Участки",0,"",1,"Участки","");
     КоманднаяПанель.Добавить(Кнопка);
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #972 - 28. Октября 2013 :: 07:42
Печать  
У меня вот так всё работает:
Код
Выбрать все
//======================================================================
Процедура кнПанелиОстаткиДТ()
	ОткрытьФорму("Отчет.торгОстаткиТоваров2");
КонецПроцедуры // кнПанелиОстаткиДТ

..............

ДанныеСводные = ПоставщикДанныхСводные.Данные; //Объект-расширение!!!
ДанныеСводные.СоздатьКнопкиПоУмолчанию();

КоманднаяПанель = ДанныеСводные.КоманднаяПанель;
КоманднаяПанель.ДобавитьПиктограммыВКоллекцию("КраснаяКнижка",1);
Печать = КоманднаяПанель.Кнопка("Остатки", 1, , 27,"кнПанелиОстаткиДТ", глВзятьКонтекст(Контекст));
Печать.Подсказка = "Остатки и движения товаров";
КоманднаяПанель.Добавить(Печать);
 



Может совпадений у тебя слишком много?))
Кнопка-Кнопка / Участки-Участки
  
Наверх
ICQ  
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #973 - 28. Октября 2013 :: 07:44
Печать  
глВзятьКонтекст(Контекст) - вот где собака порылась! Спасибо!
  
Наверх
 
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #974 - 29. Октября 2013 :: 08:44
Печать  
Теперь следующий вопрос. Имеем справочник с каким-то реквизитом (для примера, номенклатура). У номенклатуры тоже есть реквизиты. Как бы организовать отбор по значению реквизита реквизита? Улыбка
Так-то наивность понимаю
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #975 - 29. Октября 2013 :: 09:56
Печать  
ANik писал(а) 29. Октября 2013 :: 08:44:
Теперь следующий вопрос. Имеем справочник с каким-то реквизитом (для примера, номенклатура). У номенклатуры тоже есть реквизиты. Как бы организовать отбор по значению реквизита реквизита? Улыбка
Так-то наивность понимаю


через Класс «Объектv8.Отбор», повесив на отдельную кнопку, организовать коллекцию элементов отбора по нужным "реквизитам реквизитов".
Далее в "ПриПолученииЗапроса" изменить основной запрос Поставщика с учетом условий отбора в нашей коллекции.

Но это только мои теоретические измышления)) сам еще не добрался до такой задачи.
  
Наверх
ICQ  
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #976 - 29. Октября 2013 :: 10:04
Печать  
У меня тоже вопрос появился:
Как в любом Поставщике наименее затратно получить количество строк текущей выборки?
т.е. есть какой-то аналог
Выбрать
Синтаксис: Выбрать(ВекторКолонок)
Параметры:
•      ВекторКолонок – объект: АссоциативныйВектор с значениями и ключами равными идентификаторам колонок, объект: Строка с разделителями, или пустое значение.
Возвращаемое значение: объект «ИндексированнаяТаблица» заполненная по результатам выборки....

который вернет только КоличествоСтрок() ?

Зачем нужно? - в СКЛе вертикальный скроллер вечно посередине и хочется как-то информировать пользователя о количестве элементов при изменении отбора
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #977 - 01. Ноября 2013 :: 19:56
Печать  
ANik писал(а) 29. Октября 2013 :: 08:44:
Теперь следующий вопрос. Имеем справочник с каким-то реквизитом (для примера, номенклатура). У номенклатуры тоже есть реквизиты. Как бы организовать отбор по значению реквизита реквизита? Улыбка
Так-то наивность понимаю

В объект отбор необходимо добавить новый элемент, для этого необходимо добавить новое поле настройки. См. в сторону ПоляНастройки (УстановитьПоляНастройки, ПолучитьПоляНастройки). Насколько помню поля настройки вполне хавают поля с точками так что можно добавить все необходимое. Они конечно в дереве формы отбора не группируются, но в принципе можно сделать
  

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


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #978 - 07. Ноября 2013 :: 09:38
Печать  
Снова дико извиняюсь - подцепил справочник через соединение.
Доп. поля (Склад и Участок) отобразились как на форме, так и в отборе, а отбор по этим полям не срабатывает, хотя галочки проставляются, значения выбираются.
Версии вроде последние.
Как-то не вкурился в идеологию.
Процедура ПослеСозданияФормы()
     ПоставщикДанныхАдресаХранения= СоздатьОбъект("ПоставщикДанных");
     ПоставщикДанныхАдресаХранения.ТипЗначений = "Справочник.АдресаХранения";
     ПоставщикДанныхАдресаХранения.КонтейнерКоманднойПанели = "КП";
     ПоставщикДанныхАдресаХранения.КонтейнерТабличногоПоля = "ТП";
     Данные = ПоставщикДанныхАдресаХранения.Данные;
     Данные.НоваяКолонка("Ячейка","Справочник.Ячейки");
     Данные.НоваяКолонка("Номенклатура","Справочник.Номенклатура");
     Данные.НоваяКолонка("Количество","Число");
     Данные.ДобавитьСоединениеДанных("СправочникЯчейки"
     ,"Left Join Справочник.Ячейки AS СпрЯчейки $nolock On $ТекущийОбъект.Ячейка = $СпрЯчейки.ТекущийЭлемент");
     аХранения",,,1);
     Данные.НоваяКолонка( "Склад" );
     к.Участки",,,1);
     Данные.НоваяКолонка( "Участок" );
     Данные.СоздатьКнопкиПоУмолчанию();
     Данные.ТолькоПросмотр=0;
     Данные.РежимВыбора=0;
     ТабличноеПоле = ПоставщикДанныхАдресаХранения.ТабличноеПоле;
     Отбор                  = ТабличноеПоле.Отбор;
     Отбор.Участок.Использование=1;
     Отбор.Склад.Использование=1;
     ТабличноеПоле.ВосстановитьПозициюКолонок();
     ПоставщикДанныхАдресаХранения.Обновить();
КонецПроцедуры
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #979 - 07. Ноября 2013 :: 17:26
Печать  
Участок.Использование = 1 означает что отбор надо включить, при этом вид сравнения и значение отбора не задано.
Если надо просто на равенство условие задать, то советую использовать "ЭлементОтбора.Установить(...)" (см. в инструкции).

Не помешает включить режим отладки и посмотреть запрос который получается. Может что прояснится.
  

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


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #980 - 08. Ноября 2013 :: 02:31
Печать  
Так я его хочу интерактивно задать. вызваю"установить отбор" и выставляю галочку "Использовать", типсравнения "равно" и выбираю значение. Жму на "ОК" - ничего не изменилось.
А отбор при добавлении колонок создается вроде автоматически.
То ли лыжи не едут, то ли я такой.
Теоретически вопрос-то базовый можно сказать.
Но не хочется в сотый раз свой велик писать.
  
Наверх
 
IP записан
 
ANik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 66
Зарегистрирован: 03. Мая 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #981 - 11. Ноября 2013 :: 08:50
Печать  
В общем - извратился следующим образом:
Процедура ДобавитьОтборПоДопПолям(ТабПоле, СтруктураЗапроса, ИмяРеквизита, ИмяСоединения)
     Перем ДопОтбор, ТекстДопУсловий, ЗначениеОтбора, ВидСравнения, Инд;
     ДопОтбор=ТабПоле.Отбор.Получить(ИмяРеквизита);
     Если (ДопОтбор.Использование=0)
           Или (ПустоеЗначение(ДопОтбор.ВидСравнения)=1)
           Или (ПустоеЗначение(ДопОтбор.Значение)=1)
     Тогда
           Возврат;
     КонецЕсли;
     ВидСравнения=""+ДопОтбор.ВидСравнения;
     ТекстДопУсловий=?(ПустаяСтрока(СтруктураЗапроса.Условия)=0," And ", " Where ")
           +"$"+ИмяСоединения+"."+ИмяРеквизита
           +?(ВидСравнения="Равно"," = ",?(ВидСравнения="НеРавно"," != ",?(ВидСравнения="ВСписке"," In "," !In ")))
           ;
     ЗначениеОтбора=ДопОтбор.Значение;
     Если ТипЗначенияСтр(ЗначениеОтбора)="СписокЗначений" Тогда
           Для Инд=1 По ЗначениеОтбора.РазмерСписка() Цикл
                 а.ПолучитьЗначение(Инд));
           КонецЦикла;
           ТекстДопУсловий=ТекстДопУсловий+")";
     Иначе
           ТекстДопУсловий=ТекстДопУсловий+ЗначениеВСтрокуБД(ЗначениеОтбора);
     КонецЕсли;
     СтруктураЗапроса.Условия=СтруктураЗапроса.Условия+ТекстДопУсловий;
КонецПроцедуры // ДобавитьОтборПоДопПолям
Процедура ТППриПолученииЗапроса(ТабПоле,СтруктураЗапроса)
     ДобавитьОтборПоДопПолям(ТабПоле,СтруктураЗапроса,"Склад","СпрЯчейки");
     ДобавитьОтборПоДопПолям(ТабПоле,СтруктураЗапроса,"Участок","СпрЯчейки");
КонецПроцедуры      // ПриПолученииЗапроса
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #982 - 14. Ноября 2013 :: 13:31
Печать  
Уважаемые специалисты, подскажите пожалуйста, как лучше обновить одну строку табличного поля, без перерисовки всего таб.поля с помощью ПД.Обновить()? Дело в том, что при выводе ТП используется ЧередованиеЦветовСтрок=1, и при каждом ПД.Обновить() чередование меняется и сбивается ориентирование у человека.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #983 - 16. Ноября 2013 :: 17:04
Печать  
попробуй ОбновитьСтроки
  

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


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #984 - 18. Ноября 2013 :: 12:22
Печать  
Всем привет.

Может кто пояснить почему может быть не доступ объект

ПрямойЗапрос = ПоставщикДанных.ПрямойЗапрос;
Поле агрегатного объекта не обнаружено (ПрямойЗапрос)

В отладчике соответственно там ошибка.

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #985 - 18. Ноября 2013 :: 12:46
Печать  
Спасибо за совет, пд.ТабличноеПоле.ОбновитьСтроки() работает  как нужно.

Пользуясь моментом, скажите пожалуйста, где можно найти рабочее решение для поля ввода аля v8?
1cpp_classes.rar и Центр автоматизации RiK - не работают в терминале с dbf.
  
Наверх
 
IP записан
 
Попытка1С
1c++ donor
Отсутствует


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #986 - 18. Ноября 2013 :: 13:01
Печать  
"Центр автоматизации RiK - не работают в терминале с dbf."

все работает
  
Наверх
 
IP записан
 
Попытка1С
1c++ donor
Отсутствует


Делал все, иногда быстро.

Сообщений: 103
Местоположение: Санкт-Петербург
Зарегистрирован: 28. Февраля 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #987 - 18. Ноября 2013 :: 13:12
Печать  
С этим разобрался

ПрямойЗапрос = ПоставщикДанных.ПрямойЗапрос;
Поле агрегатного объекта не обнаружено (ПрямойЗапрос)

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #988 - 18. Ноября 2013 :: 13:31
Печать  

Скачал пример  Demo_RiK - загрузил базу, запустил немонопольно от имени администратора, получил ошибку.

Скачал и установил http://download.microsoft.com/download/vfoxodbcdriver/Install/6.1/W9XNT4/EN-US/V...

все работает! Спасибо за помощь!
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #989 - 18. Ноября 2013 :: 13:47
Печать  
ildary писал(а) 18. Ноября 2013 :: 13:31:
Скачал пример  Demo_RiK - загрузил базу, запустил немонопольно от имени администратора...

А чтобы работало монопольно - поставь вот это: http://infostart.ru/public/16268/
  
Наверх
ICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #990 - 18. Ноября 2013 :: 13:48
Печать  
Спасибо, но это не так важно - обычная работа не требует монопольности.
  
Наверх
 
IP записан
 
elkpro
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 145
Зарегистрирован: 19. Мая 2006
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #991 - 21. Ноября 2013 :: 21:00
Печать  
vandalsvq писал(а) 07. Ноября 2013 :: 17:26:
Участок.Использование = 1 означает что отбор надо включить, при этом вид сравнения и значение отбора не задано.
Если надо просто на равенство условие задать, то советую использовать "ЭлементОтбора.Установить(...)" (см. в инструкции).

Не помешает включить режим отладки и посмотреть запрос который получается. Может что прояснится.


Столкнулся с такой же проблемой - не работает отбор по дополнительным реквизитам, которые присоединены через метод ДобавитьКолонкуДанных - рыл рыл и нарыл метод в классе ПоставщикДанных.Сервис. Тут видно, что вся функция закомментирована. Вопрос почему?
В версии 4 данный отбор отрабатывает и функция не закомментирована. Более детально изучив - вылезает проблема с типом ЭлементОтбора = Отбор.Получить(Индекс) - тип значения ЭлементОтбора возвращает Число.


Функция ПолучитьСтрокуСоединений(Отбор) Экспорт
     Возврат "";
     //ПоляНастройки = Отбор.ПолучитьДоступныеПоля();
     //
     //ТаблицаСоединений = СоздатьОбъект("ИндексированнаяТаблица");
     //ТаблицаСоединений.НоваяКолонка("ТекстСоединений");
     //КоличествоОтборов = Отбор.Количество()-1;
     //Для Индекс = 0 По КоличествоОтборов Цикл
     //      ЭлементОтбора = Отбор.Получить(Индекс);
     //      Если ТипЗначенияСтр(ЭлементОтбора) = "Объектv8.ГруппаОтбора" Тогда
     //            Продолжить;
     //      КонецЕсли;
     //      Если ТипЗначенияСтр(ЭлементОтбора.ПолеНастройки) <> "ПолеНастройки" Тогда
     //            Продолжить;
     //      КонецЕсли;
     //      
     //      Если (ЭлементОтбора.Использование = 1) и (ПустоеЗначение(ЭлементОтбора.ПолеНастройки.Соединение) = 0) Тогда
     //            ТаблицаСоединений.НоваяСтрока();
     //            ТаблицаСоединений.ТекстСоединений = ЭлементОтбора.ПолеНастройки.Соединение;
     //      КонецЕсли;
     //КонецЦикла;
     //ТаблицаСоединений.Свернуть("ТекстСоединений","");
     //СтрСоединения = "";
     //ТаблицаСоединений.ВыбратьСтроки();
     //Пока ТаблицаСоединений.ПолучитьСтроку() = 1 Цикл
     //      СтрСоединения = СтрСоединения + ТаблицаСоединений.ТекстСоединений + "
     //      |";
     //КонецЦикла;
     //Возврат СтрСоединения;
КонецФункции // ПолучитьСтрокуСоединений
  
Наверх
 
IP записан
 
DmSk
Junior Member
**
Отсутствует



Сообщений: 56
Местоположение: Барнаул
Зарегистрирован: 28. Марта 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #992 - 22. Ноября 2013 :: 15:12
Печать  
В журнале есть поле "контрагент", нужно добавить ещё поле "код", в которое нужно выводить код контрагента,
думал добавить поле, а потом в "ТППриВыводеСтроки(" добавлять содержимое, но пока не получается,
еще можно ли новое поле создать примерно таким образом:
Данные.ДобавитьКолонкуДанных("КодКлиента","Код Клиента","$ТекущийОбъект.Клиент.Код","Строка",,,1); ?

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #993 - 26. Ноября 2013 :: 07:52
Печать  
DmSk писал(а) 22. Ноября 2013 :: 15:12:
В журнале есть поле "контрагент", нужно добавить ещё поле "код", в которое нужно выводить код контрагента,
думал добавить поле, а потом в "ТППриВыводеСтроки(" добавлять содержимое, но пока не получается,
еще можно ли новое поле создать примерно таким образом:
Данные.ДобавитьКолонкуДанных("КодКлиента","Код Клиента","$ТекущийОбъект.Клиент.Код","Строка",,,1); ?



Я в похожей ситуции сделал следующее:

У меня есть 2 документа: ЗаявкаПокупателя и Поездка. У документа ЗаявкаПокупателя есть поле Поездка (тип: Документ.Поездка), а у документа Поездка есть поле Статус. Мне потребовалось в журнале заявок выводить статус ее поездки. Сделал вот так:

Данные.ДобавитьСоединениеДанных( "Документ_Поездка","JOIN Документ.ЗаявкаПокупателя as ДокЗаявка
|ON ДокЗаявка.iddoc = ТекущийОбъект.iddoc
|LEFT JOIN Документ.Поездка as ДокПоездка ON ДокПоездка.iddoc = ДокЗаявка.Поездка" );
                 
15,,1);
Данные.НоваяКолонка( "колСтатус" );



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



Сообщений: 56
Местоположение: Барнаул
Зарегистрирован: 28. Марта 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #994 - 26. Ноября 2013 :: 11:05
Печать  
спасибо, получился такой запрос:
     Данные.ДобавитьСоединениеДанных( "Документ_Отгрузка","
     |JOIN
     |      Документ.ЗаявкаНаОтгрузку as ДокОтгрузка (NOLOCK)
     |ON
     |      ДокОтгрузка.iddoc = ТекущийОбъект.iddoc 
     |LEFT JOIN
     |      Справочник.Клиенты as СпрКлиенты (NOLOCK)
     |ON
     |      $ДокОтгрузка.Клиент = СпрКлиенты.id" );   
     
     Данные.ДобавитьКолонкуДанных("КодКлиента","Код клиента","СпрКлиенты.Code","Строка",15,,1);      
     ); 
     
     Данные.НоваяКолонка("КодКлиента");
     Данные.НоваяКолонка("ИННКлиента")
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #995 - 26. Ноября 2013 :: 11:08
Печать  
Нашел неприятный момент - созданные по способу выше поля не реагируют на фильтр "Отбор по значению в текущей колонке". Может уважаемые специалисты подскажут способ решить эту проблему кроме перехвата нажатия кнопки и прописывания своего отбора?
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #996 - 26. Ноября 2013 :: 11:47
Печать  
ildary писал(а) 26. Ноября 2013 :: 11:08:
Нашел неприятный момент - созданные по способу выше поля не реагируют на фильтр "Отбор по значению в текущей колонке".

Поддерживаю вопрос. Тоже на этом споткнулся:
Код
Выбрать все
		Документа.Себестоимость","Число",15,2,1);
		ПДДанные.НоваяКолонка( "Наценка",1);
 


По полю "Наценка" отбор не срабатывает
  
Наверх
ICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #997 - 29. Ноября 2013 :: 11:29
Печать  
Уважаемые специалисты, скажите пожалуйста, как вызвать программно нажатие на кнопку командной панели табличного поля? Хочется, чтобы при при правом щелчке по ячейке появился список значений с пунктом "Отбор по текущему значению" и юзеру не пришлось бы гонять мышку до кнопки фильтра. Вывод списка значений у меня сделан, а как программно нажать кнопку - пока непонятно.
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #998 - 30. Ноября 2013 :: 16:47
Печать  
Поиск документов в журнале "Документ" по номеру. Запрос формируется так, что курсор позиционируется на текущий документ (префикс + текущий номер в ТП), а не ищет префикс + вводимый номер.
Или у меня старый релиз?
Кто-то сталкивался, исправлял?
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #999 - 30. Ноября 2013 :: 18:54
Печать  
Немного подправил (для частного случая) поиск по номеру и дате.
1. Стало искаться
2. Поиск стал происходить "во всех направлениях"

ПоставщикДанных.Документы

Функция БыстрыйПоискПоПодстроке (номер у заказчика  текстовый, без лидирующих нулей)

Код
Выбрать все
//1c911.by
	//КлючевоеСлово = ?(Найти(Нрег(ТекстЗапросаПоиска),"where") = 0,"where","and");
	КлючевоеСлово = ?(Найти(Нрег(ТекстЗапросаПоиска),"where") = 0," where"," and");

	Если (Врег(ИмяКолонки) = "НОМЕРДОКУМЕНТА") и (Найти("0123456789",Лев(Значение,1)) > 0) Тогда
		//1c911.by
		Значение = Строка(Значение);
		ТекстЗапросаПоиска = ТекстЗапросаПоиска + КлючевоеСлово + " " + ВложеннаяСтруктура.РеквизитЗапроса + " >= '" + Значение + "'
		|";
		//Значение = Формат(Значение,"Ч"+?(МетаДокумент.ТипНомера = "Числовой","","(0)")+МетаДокумент.ДлинаНомера);
		//ТекстЗапросаПоиска = ТекстЗапросаПоиска + КлючевоеСлово + " " + ВложеннаяСтруктура.РеквизитЗапроса + " = '" + Значение + "'
		//|";
		КлючевоеСлово = "and";
	Иначе
		ТекстЗапросаПоиска = ТекстЗапросаПоиска + чевоеСлово);
	КонецЕсли;
	//1c911.by включить для поиска вперед
	//ТекстЗапросаПоиска = ТекстЗапросаПоиска + ПолучитьУсловиеДляПоиска(ИмяКолонки,ТекущиеДанные,0,Тип,Вид,КлючевоеСлово); 



Функция ПолучитьТекстИсточникаСбора

Код
Выбрать все
	Если ЭтоSQL = 0 Тогда
		ТекстИсточника = ТекстИсточника + "
		|"+КлючевоеСлово+" ТекущийОбъект.iddocdef = :ВидДокумента."+ВидДокумента+"
		|";
		КлючевоеСлово = " and"; //1c911.by "and"
	КонецЕсли;

	// добавляем фильтры по отбору данных
	КоличествоОтборов = СвойствоОтбор.Количество()-1;
	Для НомерОтбора = 0 По КоличествоОтборов Цикл
		ЭлементОтбора = СвойствоОтбор.Получить(НомерОтбора);
		ТекстОтбора = СформироватьТекстОтбора(ЭлементОтбора);
		Если ПустоеЗначение(ТекстОтбора) = 0 Тогда
			ТекстИсточника = ТекстИсточника + РазделительСтрок + КлючевоеСлово + РазделительСтрок + "	" + ТекстОтбора;
			КлючевоеСлово = " and"; //1c911.by "and"
		КонецЕсли;
	КонецЦикла;
 

« Последняя редакция: 30. Ноября 2013 :: 20:07 - Вадимко »  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Igor Nikolaenko
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 47
Зарегистрирован: 01. Апреля 2010
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1000 - 01. Декабря 2013 :: 14:28
Печать  
ildary писал(а) 26. Ноября 2013 :: 11:08:
Нашел неприятный момент - созданные по способу выше поля не реагируют на фильтр "Отбор по значению в текущей колонке".


Для решения данного вопроса необходимо в Объекты_v8\ПолеНастройки.ert изменить процедуру:

Процедура ПриЗаписи_ПолеЗапроса(Параметр)
     
     Если РазрешитьИзменение = 0 Тогда
           Возврат;
     КонецЕсли;

     //-Николаенко И.Н., 2013-11-12, убираем проверку для реализации отборов по колонкам, добавленных методом ДобавитьКолонкуДанных()
     //Если ПустаяСтрока(ПутьКДанным) = 0 Тогда
     //      Возврат;
     //КонецЕсли;
     //
     //Если ПустоеЗначение(Родитель) = 0 Тогда
     //      Возврат;
     //КонецЕсли;
     //-_

     ПолеЗапроса = Параметр;
КонецПроцедуры // ПриЗаписи_ПолеЗапроса
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1001 - 02. Декабря 2013 :: 06:57
Печать  
Большое спасибо за совет, все получилось! Данный патч может вызвать какие-нибудь проблемы?
  
Наверх
 
IP записан
 
Igor Nikolaenko
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 47
Зарегистрирован: 01. Апреля 2010
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1002 - 02. Декабря 2013 :: 18:12
Печать  
ildary писал(а) 02. Декабря 2013 :: 06:57:
Большое спасибо за совет, все получилось! Данный патч может вызвать какие-нибудь проблемы?


Нет, если Вы аккуратно пишете код  Улыбка
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1003 - 05. Декабря 2013 :: 19:21
Печать  
Подскажите, пожалуйста, следующий момент.

В справочнике на ПоставщикеДанных устанавливаю фильтры. Получил, допустим 5 строк. Как эти строки выбрать для дальнейшей работы с ними? Есть способ выгрузить в ТЗ или список, как нибудь? Как это сделать в Поставщике?



  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1004 - 06. Декабря 2013 :: 12:13
Печать  
Это делается вот так: ПостДанных.Данные.Выбрать();

p.s. Уважаемые специалисты, подскажите пожалуйста где найти информацию по сортировке у поставщика данных типа справочник?
Пытаюсь отсортировать по реквизиту с типом Справочник, и он сортирует по коду, а хочется по наименованию.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1005 - 06. Декабря 2013 :: 15:29
Печать  
Спасибо.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1006 - 06. Декабря 2013 :: 22:23
Печать  
Ох, какой баг отловил интересный.

Попробуйте вызвать такой код:

Код
Выбрать все
	а=1;Сообщить("1 а="+а);
	ПоставщикДанных.Данные.ПериодАвтоОбновления = 1;
	а=1;Сообщить("2 а="+а); 



чему у вас будет равно "а" во втором сообщить?

У меня выдает "2 а=5" !!!!???

  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1007 - 07. Декабря 2013 :: 12:33
Печать  
Думаю, это не баг, а защита от частого обновления.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1008 - 09. Декабря 2013 :: 09:06
Печать  
Обрати внимание на выделенное. Это просто переменная. Ей присваивается значение =1. А на выходе она уже равна 5!

И так - с любой переменной! Т.е. число 1 подменяется на 5. Везде.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1009 - 09. Декабря 2013 :: 09:08
Печать  
Прошу прощения, я хотел сказать, что система принудительно включает ПериодАвтоОбновления равным 5, если пытались сделать обновление чаще. Скорей всего глюк растет именно отсюда.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1010 - 09. Декабря 2013 :: 10:17
Печать  
Глюк именно с единицей. Если присвоить в ПоставщикДанных.Данные.ПериодАвтоОбновления значение отличное от 1, то всё будет ок -  другим переменным присваивается нормальное значение.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
DenisShiln
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 26. Июня 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1011 - 11. Декабря 2013 :: 07:55
Печать  
Вопрос по "ПоставщикДанных.Справочник" как вывести номер строки?
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1012 - 12. Декабря 2013 :: 16:49
Печать  
Подскажите, пожалуйста:

1. Как в табличном поле поставщика для Справочника вывести реквизит в виде пиктограммы? В реквизите хранится число - номер пиктограммы.

2. Вывел дополнительно на форму ТП_2 класса Отбор. Для интерактивного обновления основного ПоставщикДанных перехватываю события от ТП_2:

Код
Выбрать все
Процедура ТП_2ПослеРедактированияЗначения()
	ПоставщикДанных.Обновить();
КонецПроцедуры
Процедура ТП_2ПриВыбореФлажка()
	ПоставщикДанных.Обновить();
КонецПроцедуры
 



Но вот при выборе значения поля "Вид" (там где выбирается вид сравнения "Равно", "Не равно", "В списке" и пр) - событий от ТП_2 не возникает. Или я не знаю какое - что подскажете сделать для этого случая?
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
barbitura
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1013 - 12. Декабря 2013 :: 22:58
Печать  
Господа. Ткните пальцем на последнюю сборку и к ней пример. Спасибо
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1014 - 13. Декабря 2013 :: 00:11
Печать  
alyuev писал(а) 12. Декабря 2013 :: 16:49:
Подскажите, пожалуйста:

Но вот при выборе значения поля "Вид" (там где выбирается вид сравнения "Равно", "Не равно", "В списке" и пр) - событий от ТП_2 не возникает. Или я не знаю какое - что подскажете сделать для этого случая?


Попробуй событие родительского класса "ТабличноеПоле"

ПриРедактированииЗначения
Синтаксис:
ПриРедактированииЗначения(стр, кол, рег, знач)
Назначение:
Завершает успешный ввод значения
Параметры:
стр, кол, рег: строка, колонка, регион - координаты окна
знач: введенное значение
  
Наверх
ICQ  
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1015 - 13. Декабря 2013 :: 08:52
Печать  
Не вызывается ПриРедактированииЗначения при выборе из списка.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1016 - 13. Декабря 2013 :: 08:55
Печать  
barbitura писал(а) 12. Декабря 2013 :: 22:58:
Господа. Ткните пальцем на последнюю сборку и к ней пример. Спасибо


Последняя версия здесь http://www.1cpp.ru/forum/YaBB.pl?num=1273512019/0#0 но примера в ней, к сожалению, нет.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1017 - 16. Декабря 2013 :: 12:36
Печать  
Уважаемые специалисты, подскажите пожалуйста, какой командой можно перерисовать одну (например текущую) строку табличного поля. Для всех строк работает ОбновитьСтроки(), а для одной строки - не нашел в хелпе.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1018 - 17. Декабря 2013 :: 07:14
Печать  
Потому что нет такой команды
  
Наверх
ICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1019 - 17. Декабря 2013 :: 10:37
Печать  
Спасибо за ответ, а вручную как-нибудь можно сделать перерисовку текущей строки?
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1020 - 18. Декабря 2013 :: 06:32
Печать  
Можно. Перерисовываешь видимые строки Табличного поля через "ОбновитьСтроки()". В том числе обновится и текущая строка.
  
Наверх
ICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1021 - 18. Декабря 2013 :: 08:00
Печать  
Я бы не против, но когда тп отображает журнал документов за большой период - каждый вызов ОбновитьСтроки() - выполняется небыстро.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1022 - 19. Декабря 2013 :: 08:10
Печать  
Вообще-то ОбновитьСтроки() перерисовывает только видимые на экране строки ТП (+/- еще несколько). Так что размер периода не должен оказывает влияния, в отличе от команды "Обновить()"
  
Наверх
ICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1023 - 19. Декабря 2013 :: 08:41
Печать  
Спасибо за идею, буду искать причину тормозов в другом месте.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1024 - 19. Декабря 2013 :: 14:22
Печать  
Попробуй сделать кнопку на форме, а там:
Код
Выбрать все
глСчетчик=0;
Сообщить("---------------");
тп.ОбновитьСтроки() 


и обработать событие "ПриВыводеСтроки"
в котором:
Код
Выбрать все
глСчетчик=глСчетчик+1;
Сообщить(глСчетчик); 


и посмотри, сколько раз на самом деле вызывается обновление строк. А то может быть и я неправильно считаю.
И если действительно немного строк перерисовывается, то на глСчетчик=0 поставить в отладчике брейкпойнт и включить замер производительности.
  
Наверх
ICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1025 - 19. Декабря 2013 :: 14:23
Печать  
Большое спасибо за красивый метод дебага. Я попробую его попозже, так как пока все смотрят только последний месяц и на тормоза не жалуются.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1026 - 20. Декабря 2013 :: 16:33
Печать  
Интересно...

Попробуйте открыть форму, где используется ПоставщикДанных и закрыть 1С. Не закрывая предварительно саму форму.

У меня 1С остается висеть в памяти. А у вас?
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1027 - 26. Декабря 2013 :: 10:57
Печать  
Есть ошибка в функции _ПриЗаписиСвойства() класса Коллекция.ert - не объявлена переменная ФСО.

У нас в нашей конфигурации ФСО была объявлена как глобальная экспортная переменная и равна FileSystemObject.

После применения класса начались приколы. Плавающие. И через время только выяснил, что иногда ФСО вдруг становилась числом, ну, а потом уже выяснил, где причина зарыта.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1028 - 26. Декабря 2013 :: 13:48
Печать  
alyuev писал(а) 26. Декабря 2013 :: 10:57:
Есть ошибка в функции _ПриЗаписиСвойства() класса Коллекция.ert - не объявлена переменная ФСО.


Косяк Улыбка))))) на новогодних праздниках может доберусь чтобы все поправить.
  

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


1C++ rocks!

Сообщений: 4
Зарегистрирован: 09. Августа 2012
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1029 - 31. Декабря 2013 :: 08:40
Печать  
После обновления на последнюю версию, появилась ошибка в классе при создании объекта ВидыСравнения... Пришлось вернуться на старую версию, но в ней нет атрибута ПозиционныйБыстрыйПоиск, который очень нужен Печаль
  
Наверх
 
IP записан
 
barbitura
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1030 - 04. Января 2014 :: 08:18
Печать  
При выводе списка в табличный документ нет метода Область.
А при выводе в текст все нормально.
Может кто подсказать что делать?
  
Наверх
 
IP записан
 
barbitura
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1031 - 04. Января 2014 :: 08:27
Печать  
andy3626603 писал(а) 31. Декабря 2013 :: 08:40:
После обновления на последнюю версию, появилась ошибка в классе при создании объекта ВидыСравнения... Пришлось вернуться на старую версию, но в ней нет атрибута ПозиционныйБыстрыйПоиск, который очень нужен Печаль


Надо просто писать ВидыСравнения = СоздатьОбъект("ВидыСравнения");
  
Наверх
 
IP записан
 
Alexx_S
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Местоположение: UA
Зарегистрирован: 23. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1032 - 11. Января 2014 :: 07:02
Печать  
В чем может быть проблемма? Перестала работать командная панель поставщика.Независимо от типа расширения и формы.Ошибки нет ,кнопки визуально нажымаются а событий нет. С контекстного меню все работает. Обновил все классы - проблема осталась.
help
  
Наверх
 
IP записан
 
barbitura
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1033 - 11. Января 2014 :: 07:42
Печать  
Alexx_S писал(а) 11. Января 2014 :: 07:02:
В чем может быть проблемма? Перестала работать командная панель поставщика.Независимо от типа расширения и формы.Ошибки нет ,кнопки визуально нажымаются а событий нет. С контекстного меню все работает. Обновил все классы - проблема осталась.
help


Проверь MS office
  
Наверх
 
IP записан
 
Alexx_S
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Местоположение: UA
Зарегистрирован: 23. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1034 - 11. Января 2014 :: 07:59
Печать  
Проблема решена. DLL была в системе но на зарег.
regsvr32 MSCOMCTL.OCX
Спасибо за наводку.
  
Наверх
 
IP записан
 
Alexx_S
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Местоположение: UA
Зарегистрирован: 23. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1035 - 11. Января 2014 :: 13:45
Печать  
Подскажите пожалуйста.
Как в ПД.Документы при откытии формы установить период выборкы документов.
А воопшето вопрос пошире : Хочу сделать на одной форме три табличних поля.В первой таблице документы вида "ххх", вот тут то и надо при открытии ставить период текущий месяц.Во второй  таблице - документы подчиненные текущему доку из первой с фильтром на ВидДокумента.Третья табл. аналог второй ,только разница в видах документа.Табл. 2 и 3 будут обновляться при активации строк первой таблицы.

Как это правильно сделать?
Использовать ПД.Документы или ПД.ИндексированнаяТаблица?
Как сделать условие чтоб отображались только подчиненные документы?
Может так :
.
.
И (ТекущийОбъект В ("ВЫБРАТЬ
     |      ПодчДок.ТекущийДокумент КАК [ДокКалк $Документ]
     |,      ПодчДок.ВидДокумента КАК ДокКалк_вид
     |ИЗ
     |      $ПодчиненныеДокументы.Потомки(:ВыбДокумент,:НачПериода, :КонПериода~) КАК ПодчДок
     |      "))

.


Может вопросы мелкие, но для начинающего они становяться камнями...

Хотельсь бы увидеть серьезные решение на базе ПоставщикаДанных и ПрямойЗапрос для изучение и наглядности работи с данными КОП. Понимаю что на форуме примеров много, но часто не находиться нужная тема.
  
Наверх
 
IP записан
 
Alexx_S
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Местоположение: UA
Зарегистрирован: 23. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1036 - 13. Января 2014 :: 10:00
Печать  
Еще вопросик :
Есть поставщик данных документы с заказами клиентов. Нужно при открытии утановить период = ТекущийМесяц().
Можна ли добавить свою колонку типа строка и заполнять ее по условию : в процессе, отгружен,анулирован.
  
Наверх
 
IP записан
 
Alexx_S
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Местоположение: UA
Зарегистрирован: 23. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1037 - 13. Января 2014 :: 10:48
Печать  
Можно ли програмно управлять положением колонок ТП? (0 - новая колонка; 1 - в той же колонке; 2 - на следующей строке)
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1038 - 13. Января 2014 :: 11:16
Печать  
Alexx_S писал(а) 13. Января 2014 :: 10:48:
Можно ли програмно управлять положением колонок ТП? (0 - новая колонка; 1 - в той же колонке; 2 - на следующей строке)


http://www.1cpp.ru/docum/icpp/html/TableField.html#location
  
Наверх
 
IP записан
 
andy3626603
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 09. Августа 2012
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1039 - 16. Января 2014 :: 11:44
Печать  
barbitura писал(а) 04. Января 2014 :: 08:27:
andy3626603 писал(а) 31. Декабря 2013 :: 08:40:
После обновления на последнюю версию, появилась ошибка в классе при создании объекта ВидыСравнения... Пришлось вернуться на старую версию, но в ней нет атрибута ПозиционныйБыстрыйПоиск, который очень нужен Печаль


Надо просто писать ВидыСравнения = СоздатьОбъект("ВидыСравнения");


Вот именно на это и ругается. Причем не в моей обработке, а в самом классе.

ПоставщикДанных.Сервис::Конструктор() : Неудачная попытка создания объекта
ВидыСравнения = СоздатьОбъект("ВидыСравнения");
0) }

И еще: в старой версии поставщика, все работает, но настройка списка не работает. При открытии формы настройки не перехватывается реквизит кнопка.

P.S. Версия 1с++ 3.2.4.1
« Последняя редакция: 16. Января 2014 :: 13:11 - andy3626603 »  
Наверх
 
IP записан
 
barbitura
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1040 - 16. Января 2014 :: 17:41
Печать  
andy3626603 писал(а) 16. Января 2014 :: 11:44:
barbitura писал(а) 04. Января 2014 :: 08:27:
andy3626603 писал(а) 31. Декабря 2013 :: 08:40:
После обновления на последнюю версию, появилась ошибка в классе при создании объекта ВидыСравнения... Пришлось вернуться на старую версию, но в ней нет атрибута ПозиционныйБыстрыйПоиск, который очень нужен Печаль


Надо просто писать ВидыСравнения = СоздатьОбъект("ВидыСравнения");


Вот именно на это и ругается. Причем не в моей обработке, а в самом классе.

ПоставщикДанных.Сервис::Конструктор() : Неудачная попытка создания объекта
ВидыСравнения = СоздатьОбъект("ВидыСравнения");
0) }

И еще: в старой версии поставщика, все работает, но настройка списка не работает. При открытии формы настройки не перехватывается реквизит кнопка.

P.S. Версия 1с++ 3.2.4.1


Проверь офис. можешь выше посмотреть там писали про этои.

Насчет Видов сравнения сравнения проверил все работает СоздатьОбъект("ВидыСравнения").

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1041 - 19. Января 2014 :: 21:46
Печать  
2 andy3626603. Проверь состав классов причем не только в папке поставщика, но и в папке объекты v8.
2 Alexx_s колонка добавляется посредством метода добавить колонку данных (ну или как то так). Причем если запросом вычислить не можешь тогда текст запроса пустой указывай, а при выводе строки сам вычисляй значение и устанавливай через оформление ячейки.
  

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


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1042 - 22. Января 2014 :: 09:23
Печать  
А как перенести поле отбора в группу?
И можно ли как нибудь сохранить поля отбора и группы?
  
Наверх
 
IP записан
 
barbitura
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1043 - 29. Января 2014 :: 06:35
Печать  
Исключение при обработке события Выбор()!
Исключение при обработке события ПриРедактированииЗначения()!
Исключение при обработке события Выбор()!
Выполнить процедуру 'КоманднаяПанельПриНажатии' не удалось. Обратитесь пожалуйста к разработчикам.
Выполнить процедуру 'КоманднаяПанельПриНажатии' не удалось. Обратитесь пожалуйста к разработчикам.
ПоставщикДанных.ТабличноеПоле::КоманднаяПанельПриНажатии(Строка ИмяМетода=ИзменитьСтроку, СписокЗначений Параметры=) : ПоставщикДанных.ТабличноеПоле::ИзменитьСтроку() : ПоставщикДанных.СписокЗначений::ИзменитьСтроку() : Значение не представляет агрегатный объект
КонтекстФормы.РедактированиеТП.ВыборГруппы(ВыборГруппы);
чений.ert(414) }

вирт().ИзменитьСтроку();
Поле.ert(598) }

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


Эти ошибки вываливаются если отбор из списка значений. При заполнении самого списка.
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1044 - 03. Февраля 2014 :: 14:26
Печать  
alyuev писал(а) 09. Декабря 2013 :: 09:06:
Обрати внимание на выделенное. Это просто переменная. Ей присваивается значение =1. А на выходе она уже равна 5!

И так - с любой переменной! Т.е. число 1 подменяется на 5. Везде.

Я тоже нарывался на подобный прикол. Помню делал табличную часть на основе Поставщик.ДеревоЗначений. Так вот после некоторого безобидного на вид действия (кажется при установке варианта Отображения, жаль не помню точно) функция
Код
Выбрать все
Шаблон("[3]") 

начинала выдавать не 3, а 1! (или тоже 5 - не помню). Я был просто в ах$е шоке Ужас когда чисто случайно заметил . Причем врала только тройка. Вот такая арифметика Плачущий
Так что, друзья, будьте морально готовы к подобным сюрпризам.
  
Наверх
GTalkICQ  
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1045 - 11. Февраля 2014 :: 16:02
Печать  
Alexx_S писал(а) 11. Января 2014 :: 13:45:
Как в ПД.Документы при откытии формы установить период выборкы документов...

Просто используй отбор
Код
Выбрать все
	Отбор=Данные.Отбор.ДатаДокумента;
	Отбор.Использование=1;
	Отбор.ВидСравнения = гВидыСравнения.Интервал;
	Отбор.ЗначениеС = гНачалоСтандартногоИнтервала();
	Отбор.ЗначениеПо = гКонецСтандартногоИнтервала(); 


Цитата:
Как сделать условие чтоб отображались только подчиненные документы?
Может так :

Можно и так. Только не факт, что новый документ, введенный в таблицу 2-3, будет подчинен выбранному в первой, если об этом не позаботиться. Впрочем, это "мелкие вопросы"... Подмигивание
  
Наверх
GTalkICQ  
IP записан
 
Alexx_S
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Местоположение: UA
Зарегистрирован: 23. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1046 - 12. Февраля 2014 :: 08:38
Печать  
Спасибо за ответы. А как решить проблему с фокусом ТП. На форме есть 3 табличных поля поставщика.документы, 1-е список доков, 2-е и 3-е подчиненные доки к активной строке 1-го разных Вид()-ов . ПриАктивизацииСтроки первого ТП обновляю остальные.При этом фокус становиться на последней обновившейся ПД.ТП . Суть в том что хочу листать первый ТП калавишами вверх вниз. Проблема обсуждалась на форуме , но может есть красивое решение или можно управлять текущим фокусом.Пробовал Активизировать("ЭУ_ТП") - не срабатывает.Извините за много букв Улыбка
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1047 - 12. Февраля 2014 :: 10:02
Печать  
Alexx_S писал(а) 12. Февраля 2014 :: 08:38:
...Пробовал Активизировать("ЭУ_ТП") - не срабатывает...

Вообще-то должно. Подтверждение - успешная активизация последнего обновившегося ТП. Именно так (через Активизировать) и активизируется ТП в самом классе.
Код
Выбрать все
Процедура Активизировать() Экспорт
	Попытка КонтекстФормы.Активизировать(Идентификатор,1); Исключение КонецПопытки;
КонецПроцедуры // Активизировать 


Уверен, что активизируешь после вызова Обновить() табличек 2 и 3? "ЭУ_ТП" - правильный идентификатор кнопки под табличкой 1?
  
Наверх
GTalkICQ  
IP записан
 
Alexx_S
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Местоположение: UA
Зарегистрирован: 23. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1048 - 12. Февраля 2014 :: 10:11
Печать  
"ЭУ_ТП" - правильный идентификатор кнопки под табличкой 1 .
Активизирую после вызова Обновить() - а в какой момент нужно вызывать Активизировать?
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1049 - 12. Февраля 2014 :: 10:34
Печать  
На сколько я помню тонкости Табличного поля, то надо не просто "после вызова Обновить()", а по окончании всех событий во всех подчиненных полях. Иначе поле, которое еще отрабатывает события будет "самым активным".
Проверить - достаточно легко: сделать процедуру, которая будет писать в лог-файл все события от всех полей, и смотреть - есть ли еще события после того, как мы вызвали "Обновить()" и активировали нужное ТП.
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1050 - 13. Февраля 2014 :: 11:37
Печать  
barbitura, переменная поставщика должна быть объявлена как переменная формы. Больше всего похоже на эту ошибку. Если переменная есть, тогда смотри набор классов или версию dll 1C++
  

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



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1051 - 16. Февраля 2014 :: 03:34
Печать  
Вопрос для vandalsvq:

Мне нужно для класса ДеревоЗначений организовать полную сортировку, а не только текущего узла. На сколько корректны подобные изменения?

Код
Выбрать все
Процедура Сортировать(row_parent = "", ИмяКолонки, Направление = 1) Экспорт
	Если ПустоеЗначение(ИмяКолонки) = 1 Тогда
		вирт()._ВыброситьИскл("Ошибка при вызове метода контекста (Сортировать). Имя колонки не задано.");
		Возврат;
	КонецЕсли;
	Если Колонки.НайтиКлюч(ИмяКолонки,0) = -1 Тогда
		вирт()._ВыброситьИскл("Ошибка при вызове метода контекста (Сортировать). Колонка ("+ИмяКолонки+") существует.");
		Возврат;
	КонецЕсли;

	Если ПустоеЗначение(row_parent) = 0 Тогда
		Параметры = ПолучитьТекущиеПараметры(row_parent);
		Если Параметры.Количество() = 0 Тогда
			вирт()._ВыброситьИскл("Ошибка при вызове метода контекста (Сортировать). Путь к строке не корректен.");
			Возврат;
		КонецЕсли;
		_ТекущаяТаблица = Параметры.ТекущаяТаблица.rows;
	Иначе
		_ТекущаяТаблица = ХранилищеДанных;
	КонецЕсли;
	// Начало изменений ->
	лРодитель = "";
	Если _ТекущаяТаблица.row_isfolder =  1 Тогда
		лРодитель = _ТекущаяТаблица.row_path
	КонецЕсли;
	//Конец изменений <-

	_ТекущаяТаблица.Сортировать(?(Направление = 2,"-","") + ИмяКолонки);
	// Начало изменений ->
	Если лРодитель <>  "" Тогда
		Я().Сортировать(лРодитель, ИмяКолонки, Направление);
	КонецЕсли;
	//Конец изменений <-
КонецПроцедуры // Сортировать 


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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1052 - 12. Марта 2014 :: 07:46
Печать  
Попробую спросить еще раз:

Уважаемые специалисты, подскажите пожалуйста где найти информацию по сортировке у поставщика данных типа справочник?
Пытаюсь отсортировать по реквизиту с типом Справочник, и он сортирует по коду, а хочется по наименованию.
  
Наверх
 
IP записан
 
barbitura
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1053 - 13. Марта 2014 :: 11:05
Печать  
ildary писал(а) 12. Марта 2014 :: 07:46:
Попробую спросить еще раз:

Уважаемые специалисты, подскажите пожалуйста где найти информацию по сортировке у поставщика данных типа справочник?
Пытаюсь отсортировать по реквизиту с типом Справочник, и он сортирует по коду, а хочется по наименованию.


СортироватьПоВозрастанию() не помогает?
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1054 - 13. Марта 2014 :: 16:10
Печать  
ildary писал(а) 12. Марта 2014 :: 07:46:
Попробую спросить еще раз:

Уважаемые специалисты, подскажите пожалуйста где найти информацию по сортировке у поставщика данных типа справочник?
Пытаюсь отсортировать по реквизиту с типом Справочник, и он сортирует по коду, а хочется по наименованию.

Видимо надо в запрос добавить соединение с нужным справочником и потом уже добавить сортировку по полю Наименование
  
Наверх
ICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1055 - 14. Марта 2014 :: 05:43
Печать  
Извините, сразу не уточнил: речь идет о сортировке путем нажатия на заголовок колонки. То есть имеем к примеру табличное поле, выводящее справочник Товары, одна из колонок - реквизит типа справочник, например СтранаПроисхождения. Нажимая на заголовок колонки "СтранаПроисхождения" - видим, что таб. поле пересортировалась, но при этом отсортировалась по СтранаПроисхождения.Код, а не СтранаПроисхождения.Наименование.

В классе Поставщик данных.Справочник СортироватьПоВозрастанию() описана, но она пустая. Эта процедура полная только в Поставщик данных.ИндексированнаяТаблица.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1056 - 15. Марта 2014 :: 05:15
Печать  
ildary писал(а) 14. Марта 2014 :: 05:43:
Извините, сразу не уточнил: речь идет о сортировке путем нажатия на заголовок колонки. То есть имеем к примеру табличное поле, выводящее справочник Товары, одна из колонок - реквизит типа справочник, например СтранаПроисхождения. Нажимая на заголовок колонки "СтранаПроисхождения" - видим, что таб. поле пересортировалась, но при этом отсортировалась по СтранаПроисхождения.Код, а не СтранаПроисхождения.Наименование.

В классе Поставщик данных.Справочник СортироватьПоВозрастанию() описана, но она пустая. Эта процедура полная только в Поставщик данных.ИндексированнаяТаблица.

И что это меняет? Просто механика работы ТП такова, что ему абсолютно без разницы - что у тебя в поле, Справочник, Документ, Число, Строка и т.д. Это твоя забота - обеспечить ТП нужными колонками, чтобы оно сделало свою работу.
Поэтому повторю последовательность действий еще раз:
1. Делаешь соединение ТП с нужным тебе Справочником.
2. Вытаскиваешь поле "Наименование" в выборку запроса (можешь не отображать, а оставить это поле скрытым)
3. При нажатии на заголовок колонки - устанавливаешь сортировку по этому скрытому полю.

Если полей типа "Справочник" много и сортировать можно по любому из них, то придется сразу делать слишком много соединений, поэтому можно отключать Поставщик данных от ТП, построить новый запрос, соединением с нужным справочником, выставить нужные сортировки и проч. и подключить этого Поставщика к ТП.
З.Ы. Вероятно такой механизм и планировалось сделать в том самом СортироватьПоВозрастанию(), но, ИМХО, там нюансов... (например, справочник может быть и без Наименования)
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1057 - 16. Марта 2014 :: 16:07
Печать  
Некоторые методы в поставщике (вроде сортировать по возрастанию) существуют поскольку этого требует класс "ПоставщикДанных.ТабличноеПоле". Класс может переопределять механизм работы, а может оставлять типовой.
Для управления сортировкой в поставщике с расширением "Справочник" есть атрибут "РеквизитСортировки"

Цитата:
РеквизитСортировки
Синтаксис: РеквизитСортировки
Доступ: Чтение и запись
Тип: Строка.
Описание: Идентификатор реквизита, по которому необходимо отсортировать список. Необходимо помнить, что сортировка может осуществляться только по:
•      Реквизиту «Код»
•      Реквизиту «Наименование»
•      прочим реквизитам справочника с признаком «Сортировка»


Установили, вызвали "Обновить" и вуаля.
Сортировка по полям где нет признака "Сортировать" невозможна.

Пы.сы. чуть позже заметил что речь идет о реквизите справочника с признаком "Сортировать". Вообще то, там сортировка идет по внутреннему идентификатору. Так работает платформа. Она хранит в индексе идентификатор, а не код, наименование или еще что, поэтому при сортировке используется именно он.
  

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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1058 - 17. Марта 2014 :: 14:13
Печать  
Salimbek писал(а) 15. Марта 2014 :: 05:15:
Поэтому повторю последовательность действий еще раз:
1. Делаешь соединение ТП с нужным тебе Справочником.
2. Вытаскиваешь поле "Наименование" в выборку запроса (можешь не отображать, а оставить это поле скрытым)
3. При нажатии на заголовок колонки - устанавливаешь сортировку по этому скрытому полю.


Спасибо за мудый совет, но хотелось бы еще уточнить - как в пункте 3 выполнить действие "установить сортировку?" Пункты 1 и 2 сделаны, а какую команду вызывать в ПриВыбореЗаголовка() - я не понял...

попробовал там выполнить

пдДействия.РеквизитСортировки = "НаимСтраны";

выдает - Поле агрегатного объекта не обнаружено (НаимСтраны)
при том, что в табличном поле такая колонка есть.


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



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1059 - 17. Марта 2014 :: 19:26
Печать  
А как делал соединение?

Посмотрел реализацию - в классе есть "ДобавитьСоединениеДанных" и "ДобавитьКолонкуДанных"
После добавления колонки - ее уже можно будет добавлять в сортировку.
Ну и при реализации - можно сделать наоборот - скрыть колонку с реквизитом типа "Справочник" (чтобы не сортировало как не надо. А отобразить, колонку с наименованием. Тогда при нажатии на заголовок колонки - класс должен сам все красиво отсортировать.
  
Наверх
ICQ  
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1060 - 18. Марта 2014 :: 05:32
Печать  
делал вот так:

Данные.ДобавитьСоединениеДанных( "Справочник_Контрагенты","JOIN Справочник.плнДействия as СпрДействия
|ON СпрДействия.id = ТекущийОбъект.id
|LEFT JOIN Справочник.Контрагенты as СпрКонтр ON СпрКонтр.id = СпрДействия.Контрагент" );

енование","Строка",15,,1);
Данные.НоваяКолонка( "НаимКонтрагента" );

Табличное поле выводит Справочник СпрДействия содержит в себе реквизит "Контрагент", тип - Справочник.Контрагенты.

Идея скрыть колонку справочника и выводить только колонку НаимКонтрагента - хороша, только вот при нажатии на заголовок этой (НаимКонтрагента) колонки - ничего не происходит (значок сортировки не появляется).


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



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1061 - 04. Апреля 2014 :: 10:02
Печать  
Класс ПД.ИТЗ хороший, но при сортировке в процедуре ПриВыбореЗаголовка() - слетает текущая строка. Рекомендую всем добавить в файл "ПоставщикДанных.ИндексированнаяТаблица.ert" следующие строки:

в процедуре ПриВыбореЗаголовка() после строк

Если ТабличноеПоле.ИнтерактивнаяСортировка = 0 Тогда
     Возврат;
КонецЕсли;

вставить:

     СтароеПоле = 0;
     Попытка
           
           ИмяИндекса = ИндексированнаяТаблица.ИмяИндекса( ИндексированнаяТаблица.КоличествоИндексов() );
           Если ПустоеЗначение( ИмяИндекса ) = 0 Тогда
                 
                 НомСтр = ИндексированнаяТаблица.НомерСтроки;
                 Если ПустоеЗначение( НомСтр ) = 0 Тогда
                       
                       СтароеПоле = ИндексированнаяТаблица.ПолучитьЗначение( НомСтр, ИмяИндекса );
                       
                 КонецЕсли;
                 
           КонецЕсли;
           
     Исключение
     КонецПопытки;

и в конец этой процедуры вставить

     Если ПустоеЗначение( СтароеПоле ) = 0 Тогда
           
           Поз = ИндексированнаяТаблица.НайтиСтроку( СтароеПоле, ЗначПоиска );
           Если Поз > 0 Тогда //восстановим строку
                 
                 ТабличноеПоле.ТекущаяСтрока = Поз;
                 
           КонецЕсли;
           
     КонецЕсли;



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


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1062 - 04. Апреля 2014 :: 15:20
Печать  
А что в итоги получилось?
Нашли способ сортировки добавленных колонок?
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1063 - 04. Апреля 2014 :: 15:42
Печать  
Нашел трансректальный способ - сменил ПД с источником Справочник на ПД с источником ИТЗ. Для моей текущей задачи этого достаточно. Для других - вряд ли.
  
Наверх
 
IP записан
 
barbitura
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1064 - 04. Апреля 2014 :: 15:45
Печать  
ildary писал(а) 04. Апреля 2014 :: 15:42:
Нашел трансректальный способ - сменил ПД с источником Справочник на ПД с источником ИТЗ. Для моей текущей задачи этого достаточно. Для других - вряд ли.


Так а данные из справочника в ИТЗ загружаете? Запрос делаете?
  
Наверх
 
IP записан
 
ildary
Full Member
***
Отсутствует



Сообщений: 163
Зарегистрирован: 24. Марта 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1065 - 04. Апреля 2014 :: 15:47
Печать  
Да, черным запросом, чтобы всяческие отборы не работали над итоговой ИТЗ, а шуршали в запросе.
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1066 - 04. Апреля 2014 :: 20:17
Печать  
Посмотрел "ПоставщикДанных.Справочник"
1. В Процедуре ДобавитьКолонкуДанных жестко устанавливается
Код
Выбрать все
	ВложеннаяСтруктура.Сортировка = 0; 


2. В событии ПриВыбореЗаголовка есть этот код:
Код
Выбрать все
	Если ВложеннаяСтруктура.Сортировка = 0 Тогда
		Возврат; 


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

В качестве временного решения "для_себя" можно подправить процедуру 1, чтобы если имя колонки начинается, например, на "_сорт", то Сортировка выставлять в 1.
Примерно так:
Код
Выбрать все
	Если Лев(ИдентификаторРеквизита,5)="_сорт" Тогда
		ВложеннаяСтруктура.Сортировка = 1;
	Иначе
		ВложеннаяСтруктура.Сортировка = 0;
	КонецЕсли; 



И добавлять колонку для сортировки как
Код
Выбрать все
менование","Строка",15,,1); 

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


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1067 - 04. Апреля 2014 :: 21:04
Печать  
Ух ты спасибо большое!!!
Будем пробовать
  
Наверх
 
IP записан
 
badaboom
YaBB Newbies
*
Отсутствует



Сообщений: 2
Зарегистрирован: 27. Августа 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1068 - 07. Апреля 2014 :: 07:18
Печать  
Вопрос:
Возможно ли в объекте «ПоставщикДанных.КоманднаяПанель»

В кнопке с типом "вложеное меню" добавить кноку так же с типом "Вложеное меню", чтобы получить еще подменю.
У меня сходу не получилось.

Спасибо.
  
Наверх
ICQ  
IP записан
 
leov-001
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 150
Зарегистрирован: 05. Марта 2009
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1069 - 17. Апреля 2014 :: 07:22
Печать  
ПоставщикДанных.ДвиженияДокумента валит 1С с ошибкой
Цитата:
[Microsoft][SQL Server Native Client 10.0] Подключение занято до получения результатов другой команды

  

ErrorSQL2.PNG ( 26 KB | Загрузки )
ErrorSQL2.PNG
Наверх
 
IP записан
 
leov-001
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 150
Зарегистрирован: 05. Марта 2009
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1070 - 17. Апреля 2014 :: 07:38
Печать  
leov-001 писал(а) 17. Апреля 2014 :: 07:22:
ПоставщикДанных.ДвиженияДокумента валит 1С с ошибкой
Цитата:
[Microsoft][SQL Server Native Client 10.0] Подключение занято до получения результатов другой команды


  

ErrorSQL1.PNG ( 16 KB | Загрузки )
ErrorSQL1.PNG
Наверх
 
IP записан
 
leov-001
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 150
Зарегистрирован: 05. Марта 2009
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1071 - 17. Апреля 2014 :: 08:51
Печать  
Пардон, сам виноват. В документе расходная накладная есть реквизит ВидДвижения
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1072 - 24. Апреля 2014 :: 11:16
Печать  
Salimbek писал(а) 04. Апреля 2014 :: 20:17:
Посмотрел "ПоставщикДанных.Справочник"
1. В Процедуре ДобавитьКолонкуДанных жестко устанавливается
Код
Выбрать все
	ВложеннаяСтруктура.Сортировка = 0; 


2. В событии ПриВыбореЗаголовка есть этот код:
Код
Выбрать все
	Если ВложеннаяСтруктура.Сортировка = 0 Тогда
		Возврат; 


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

В качестве временного решения "для_себя" можно подправить процедуру 1, чтобы если имя колонки начинается, например, на "_сорт", то Сортировка выставлять в 1.
Примерно так:
Код
Выбрать все
	Если Лев(ИдентификаторРеквизита,5)="_сорт" Тогда
		ВложеннаяСтруктура.Сортировка = 1;
	Иначе
		ВложеннаяСтруктура.Сортировка = 0;
	КонецЕсли; 



И добавлять колонку для сортировки как
Код
Выбрать все
менование","Строка",15,,1); 


После некоторого тестирования получилось следующее:
Когда сортировку включаешь в ПД.Справочник через "_сорт", то далее поле искалось у текущего справочника. И, так как не находило, то все падало с ошибкой.
Решение:
В функции "ПолучитьСтрокуУпорядочивания" вместо
Код
Выбрать все
		ИначеЕсли ПустоеЗначение(ВрегРеквизитСортировки) = 1 Тогда
			Если ИерархическийПросмотр = 1 Тогда
				СтрокаПорядка = "ТекущийОбъект.idx_"+Лев(ДобавлениеКИндексу,СтрДлина(ДобавлениеКИндексу)-1);
			Иначе
				СтрокаПорядка = "ТекущийОбъект.idx_ID";
			КонецЕсли;
		Иначе
			ПолеКодаНаименования = "";
...
 


пишем
Код
Выбрать все
		ИначеЕсли ПустоеЗначение(ВрегРеквизитСортировки) = 1 Тогда
			Если ИерархическийПросмотр = 1 Тогда
				СтрокаПорядка = "ТекущийОбъект.idx_"+Лев(ДобавлениеКИндексу,СтрДлина(ДобавлениеКИндексу)-1);
			Иначе
				СтрокаПорядка = "ТекущийОбъект.idx_ID";
			КонецЕсли;
		ИначеЕсли Лев(ВрегРеквизитСортировки,5)="_СОРТ" Тогда
			СтрокаПорядка = СтруктураДанных.Получить(ВрегРеквизитСортировки).РеквизитЗапроса;
		Иначе
			ПолеКодаНаименования = "";
 



Если используется SQL-сервер, то добавляем подсвеченные строчки и в ветку "Если ЭтоSQL = 1"
  
Наверх
ICQ  
IP записан
 
PitKZL
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 12. Февраля 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1073 - 26. Апреля 2014 :: 18:46
Печать  
у кого есть работающая версия Поставщика , с отборами по "Отбор по значению в текущей колонке", созданные  ПДДанные.ДобавитьКолонкуДанных( 

P.S.
Ошибка где то в классе Объектv8.Отбор
Функция ПолучитьТекстЗапроса(
После прохода Группы "Преопределенные", все остальные элементы отбора получают значение:
ЭлементОтбора.Использование = 0
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1074 - 26. Апреля 2014 :: 19:06
Печать  
Напиши, если можно, подробнее. Я смотрел сортировку "встроенную", т.е. по нажатию на заголовок и что там далее по цепочке вызывалось. Возможно на какой-то другой блок кода внимания не обратил. Напиши - при вызове какого события этого Поставщика падает - попробую смоделировать и, если что, исправить.
  
Наверх
ICQ  
IP записан
 
PitKZL
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 12. Февраля 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1075 - 26. Апреля 2014 :: 19:46
Печать  
В версии Поставщика 4.1.1 все работает
В последней не работает
Часть модуля :{
ПоставщикДанных = СоздатьОбъект("ПоставщикДанных");
ПоставщикДанных.ТипЗначений = "Документ.РасходнаяНакладная";
ПоставщикДанных.КонтейнерТабличногоПоля = "ДокументыСписокДокументСчет";
ПоставщикДанных.КонтейнерКоманднойПанели = "ИДКоманднаяПанель";
     
Данные = ПоставщикДанных.Данные;
ТекстСоединения="
     |left join Справочник.Контрагенты as $СпрКонтр
     |     on $ШапкаДокумента.Контрагент = $СпрКонтр.id  
     |";
Данные.ДобавитьСоединениеДанных("ДопПоля",ТекстСоединения);

ник.Сотрудники",,,1);

Данные.НоваяКолонка("Контрагент");
Данные.НоваяКолонка("Менеджер");
}

Отбор по Колонке "Контрагент" производится всегда (Реквизит документа расходная накладная)
Отбор по колонке "Менеджер " произвести не удается.(реквизит справочника контрагенты)

разбор полетов показал , что "отбор по значению в текущей колонке" в поставщике не работает в связи с тем что
У " Менеджера" значение "ПолеНастройки.ПолеЗапроса " - пустое,
подскажите где копать-?
« Последняя редакция: 27. Апреля 2014 :: 12:04 - PitKZL »  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

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

По поводу сортировки по произвольным полям, тут я не хочу ничего говорить. Изначально хотелось добавить такую возможность, но помню что отказался от этой идеи. Были сложности в реализации, но главная проблема - скорость работы. Отсутствие индексов по данным полям вполне возможно что приведет к не оптимальному плану запроса и как следствие скажется на времени отклика на действия пользователей.
  

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



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1077 - 28. Апреля 2014 :: 04:43
Печать  
vandalsvq писал(а) 28. Апреля 2014 :: 04:19:
По поводу ошибки с тем что отбор по добавленным колонкам не работает ко мне уже обратились. Ошибку исправил, но еще не до конца протестировал + нашел по мелочи всякие ошибочки. Постараюсь выложить в ближайшее время.
Так же постараюсь добавить сквозную сортировку по дереву значений.

По поводу сортировки по произвольным полям, тут я не хочу ничего говорить. Изначально хотелось добавить такую возможность, но помню что отказался от этой идеи. Были сложности в реализации, но главная проблема - скорость работы. Отсутствие индексов по данным полям вполне возможно что приведет к не оптимальному плану запроса и как следствие скажется на времени отклика на действия пользователей.

Глядя на код я примерно так и понял.
Чтобы быстро работало, надо: 1. Соединяемое поле основного справочника должно быть проиндексировано и 2. Должен быть индекс по полю, по которому будем сортировать. Проверить же 1-й пункт программно - не простая задача, т.к. для этого надо выделить соединяемые поля и проверить на вхождение в один индекс.
С другой стороны - если разработчикам очень хочется, то почему бы и не дать им такой инструмент? Можно просто описать рекомендации по оптимальному использованию в документации.
  
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1078 - 28. Апреля 2014 :: 04:49
Печать  
Кстати, можно же добавлять признак сортировки и на основное поле справочника, как сейчас сделано у тебя с проверкой на наличие признака "Сортировка" в метаданных. Это раскроет нам п.1. Только при активизации соответствующей сортировки не устанавливать сортировку по этом полю (как сделано сейчас), а делать "скрытый" JOIN с соответствующим справочником и установкой сортировки по "Представлению"(только надо добавить проверку, вдруг поле descr отсутствует)
  
Наверх
ICQ  
IP записан
 
PitKZL
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 12. Февраля 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1079 - 13. Мая 2014 :: 06:56
Печать  
Все и затихло?Когда ожидать исправления?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1080 - 23. Мая 2014 :: 11:20
Печать  
Хороший вопрос. Было бы 25 часов в сутках сказал бы после выходных Улыбка. Но попробую хотя бы в течении недели двух добраться.
  

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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1081 - 23. Мая 2014 :: 15:14
Печать  
Небольшое обновление.

Класс "ПоставщикДанных"
5.0.5 от 23.05.14 г.
- Исправлены выявленные ошибки при добавлении колонок данных
- Добавлена возможность построения древовидных структуры в доступных полях при добавлении колонок данных

Классы "Объекты_v8"
23.05.14 г.
- Добавлены некоторые возможности для расширения функционала КОП "Поставщик данных"

Кстати в архив приложены обработки для демонстрации некоторых возможностей. Запускать на конфигурации Бухгалтерия (типовой), можно с демо данными.
  

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


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1082 - 26. Мая 2014 :: 07:02
Печать  
vandalsvq писал(а) 23. Мая 2014 :: 15:14:
Небольшое обновление.

Класс "ПоставщикДанных"
5.0.5 от 23.05.14 г.
- Исправлены выявленные ошибки при добавлении колонок данных
- Добавлена возможность построения древовидных структуры в доступных полях при добавлении колонок данных

Классы "Объекты_v8"
23.05.14 г.
- Добавлены некоторые возможности для расширения функционала КОП "Поставщик данных"

Кстати в архив приложены обработки для демонстрации некоторых возможностей. Запускать на конфигурации Бухгалтерия (типовой), можно с демо данными.


обработки для демонстрации не могу найти в архиве. Может их там нет? Подмигивание
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1083 - 26. Мая 2014 :: 08:00
Печать  
Может и нет Улыбка, а может и есть, проверю дома.
  

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


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1084 - 29. Мая 2014 :: 12:42
Печать  
демку бы. без демы совсем тяжко разобраться. в документации примеров нет, кроме прямых запросов  Печаль
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1085 - 02. Июня 2014 :: 02:58
Печать  
подскажите. а как перехватить событие "при добавлении строки" в табличном поле?
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1086 - 02. Июня 2014 :: 04:53
Печать  
Asakra писал(а) 02. Июня 2014 :: 02:58:
подскажите. а как перехватить событие "при добавлении строки" в табличном поле?


может все таки это уже есть!? а то я класс допилил...
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1087 - 02. Июня 2014 :: 08:04
Печать  
а как сделать, что бы по enter переходить в следующую колонку, что бы продолжить ввод?
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1088 - 02. Июня 2014 :: 12:45
Печать  
Asakra писал(а) 02. Июня 2014 :: 08:04:
а как сделать, что бы по enter переходить в следующую колонку, что бы продолжить ввод?


сделал, через FormEx...
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1089 - 02. Июня 2014 :: 16:42
Печать  
я натыкал такую ошибку.
если начать редактировать ячейку ТП и в итоге нажать Esc, то не сбрасывается флаг "МоментРедактирования", т.к. нет события "ПриОтменеРедактированияЗначения"

и т.к. флаг "МоментРедактирования" не сброшен, не работают кнопки Insert, F9 и Del (возможно еще какие-то не работают).

для исправления сделал следующее:
в обработку "ПоставщикДанных.ТабличноеПоле.ert" добавил
Код
Выбрать все
Процедура ПриОтменеРедактированияЗначения(ТекущаяСтрока,ТекущаяКолонка,ТипРегиона) Экспорт



КонецПроцедуры // ПриОтменеРедактированияЗначения()
 


и добавил в обработку "ПоставщикДанных.ИндексированнаяТаблица.ert"
Код
Выбрать все
Процедура ПриОтменеРедактированияЗначения(ТекущаяСтрока,ТекущаяКолонка,ТипРегиона) Экспорт

	ТабличноеПоле.МоментРедактирования = 0;

КонецПроцедуры // ПриОтменеРедактированияЗначения()
 


скорей всего нужно добавить и остальным объектам!
« Последняя редакция: 05. Июня 2014 :: 14:19 - Asakra »  
Наверх
 
IP записан
 
Alexx_S
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Местоположение: UA
Зарегистрирован: 23. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1090 - 03. Июня 2014 :: 12:36
Печать  
Подскажите как отловить событие смены периода в ПоставщикДанных.Документ.Надо при интерактивной смене периода заполнять ИТЗ.
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1091 - 04. Июня 2014 :: 02:54
Печать  
Alexx_S писал(а) 03. Июня 2014 :: 12:36:
Подскажите как отловить событие смены периода в ПоставщикДанных.Документ.Надо при интерактивной смене периода заполнять ИТЗ.


Код
Выбрать все
//======================================================================
Процедура <ИДКонтейнераТП>ПриПолученииЗапроса(п_ТП,п_СтруктураЗапроса)
	п_ТП.Отбор.ДатаДокумента.ЗначениеС
	п_ТП.Отбор.ДатаДокумента.ЗначениеПо
	// взять в переменные начальные значения интервала и сравнивать здесь,
	// если изменились, значит менялся интервал
КонецПроцедуры // КонтейнерТПОборотРозницаПриПолученииЗапроса
 



Событие "ПриИзмененииОтбора" почему-то не срабатывает при смене периода, хотя по логике должно бы
  
Наверх
ICQ  
IP записан
 
DenisShiln
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 26. Июня 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1092 - 04. Июня 2014 :: 08:59
Печать  
Никак не могу найти. Как в "ПоставщикДанных.Справочник" активизировать строку с каким либо элементом?

Разобрался...
Код
Выбрать все
ДанныеН = ТабличноеПолеН.Данные;
ДанныеН.РодительВерхнегоУровня = ТекущиеДанные.Номенклатура.Родитель;
ДанныеН.Обновить();
ДанныеН.ТекущаяСтрока = ТекущиеДанные.Номенклатура;
ДанныеН.Обновить();
 

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


1C++ rocks!

Сообщений: 5
Местоположение: Київ
Зарегистрирован: 05. Августа 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1093 - 17. Июня 2014 :: 08:10
Печать  
Товарищи намекните, если нужен общий журнал + ПоставщикДанных, куда копать (как обойти)?
П.С.
Вариант с дополнительным журналом тоже подходит. Дополнительный журнал тоже пробовал - даёт ошибку.
Релизы
1С 27
1CPP.dll 3.2.4.1
1Sqlite.dll 1.0.2.6
Formex.dll 2.0.5.109
spreadsheet.dll 1.1.27.0
Версия ПоставщикДанных 5.0.5
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1094 - 17. Июня 2014 :: 08:41
Печать  
ЯпонаХата писал(а) 17. Июня 2014 :: 08:10:
Товарищи намекните, если нужен общий журнал + ПоставщикДанных, куда копать (как обойти)?


Можно покопать в сторону ИТЗ с отбором (вот здесь например: http://www.1cpp.ru/forum/YaBB.pl?num=1333941317)
  
Наверх
ICQ  
IP записан
 
Fisco
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 26. Июня 2014
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1095 - 26. Июня 2014 :: 20:09
Печать  
Пробую работать с классами. Есть задача - отфильтровать строки табличного поля по выбранному значению из списка. Вроде что-то получилось, но не уверен что правильно. Приложил пример обработки с ИТЗ, а вообще надо это с документом реализовать.
Сомнения возникают из-за того, что при выводе списка на печать (по кнопке командной панели),  выводиться на печать ВСЕ строки таблицы, а надо только отображаемые. Слева (на форме) исходный состав ИТЗ).
Может кто из умных глянет? Подмигивание
  

_________005.ert ( 16 KB | Загрузки )
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1096 - 26. Июня 2014 :: 23:56
Печать  
Fisco писал(а) 26. Июня 2014 :: 20:09:
Пробую работать с классами. Есть задача - отфильтровать строки табличного поля по выбранному значению из списка.


Вот здесь посмотри, про ИТЗ с отбором.
http://www.1cpp.ru/forum/YaBB.pl?num=1333941317
  
Наверх
ICQ  
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1097 - 27. Июня 2014 :: 00:09
Печать  
Fisco писал(а) 26. Июня 2014 :: 20:09:
а вообще надо это с документом реализовать.


Там тем более все штатно через Объекты_v8\Отбор.ert

А в твоем примере - хню написал: берешь в ИТЗ - объект из поставщика, и потом его же и подменяешь вновь выгруженной отфильтрованной ТЗ... Тогда надо при смене строк списка полностью переинициализировать Поставщика. Тогда и печататься будет с фильтром.
  
Наверх
ICQ  
IP записан
 
Fisco
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 26. Июня 2014
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1098 - 27. Июня 2014 :: 05:01
Печать  
Да нутром чую что хню....
Dolly_EV, мил человек, а не затруднит ли черкнуть в моем творении пару правильных строк с отбором? У самого видимо руки уже не те...  Печаль
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1099 - 27. Июня 2014 :: 05:51
Печать  
Fisco писал(а) 27. Июня 2014 :: 05:01:
Да нутром чую что хню....
Dolly_EV, мил человек, а не затруднит ли черкнуть в моем творении пару правильных строк с отбором? У самого видимо руки уже не те...  Печаль

В прилагаемом файле:
\CLASSES\ПоставщикДанных\ПОСТАВЩИКДАННЫХ.ИНДЕКСИРОВАННАЯТАБЛИЦА.ERT - поправленный класс из набора "Поставщика" с расшаренным параметром.
\CLASSES\ЭлементыФормы\ЭлементыФормы.Закладки.ert - правильный класс для закладок
\ExtForms\служб_ПросмотрСЗ_ТЗ_ИТЗ.ert - ИТЗ с отбором

в твоем творении пару строк черкать смысла не вижу, т.к. подход изначально неправильный, но черкнул)) там же в архиве.
  

______________003.rar ( 64 KB | Загрузки )
Наверх
ICQ  
IP записан
 
Fisco
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 26. Июня 2014
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1100 - 27. Июня 2014 :: 09:58
Печать  
Спасибо, буду изучать! А что, подход концептуально неверен к смыслу задачи? ((
А вот а архиве еще обработка "служб_ПросмотрСЗ_ТЗ_ИТЗ.ert", загрузил в нее индексированную таблицу значений, но не могу установить отбор, недоступны поля "Представление" и "значение". В чем тонкость?
  
Наверх
 
IP записан
 
Amel
Junior Member
**
Отсутствует


1С++ rulezzz!

Сообщений: 85
Местоположение: Украина, Винница
Зарегистрирован: 20. Ноября 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1101 - 14. Июля 2014 :: 10:16
Печать  
ув. коллеги!
не могу никак осилить кастомное контекстное меню в ПоставщикеДанных.Документы.
Где и как инициализировать его правильно?
Как определить процедуру обработки?
У меня почему-то отрабатывает ПриКонтекстномМеню только ПОСЛЕ выбора пункта конт. меню - это правильно?
Мне нужно, чтобы конт. меню формировалось на основании данных выбранной строки. Это вообще возможно?
  

Восторгаюсь 1С++ и классами к ней!
Наверх
ICQ  
IP записан
 
barbitura
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1102 - 14. Июля 2014 :: 18:18
Печать  
Dolly_EV писал(а) 27. Июня 2014 :: 05:51:
Fisco писал(а) 27. Июня 2014 :: 05:01:
Да нутром чую что хню....
Dolly_EV, мил человек, а не затруднит ли черкнуть в моем творении пару правильных строк с отбором? У самого видимо руки уже не те...  Печаль

В прилагаемом файле:
\CLASSES\ПоставщикДанных\ПОСТАВЩИКДАННЫХ.ИНДЕКСИРОВАННАЯТАБЛИЦА.ERT - поправленный класс из набора "Поставщика" с расшаренным параметром.
\CLASSES\ЭлементыФормы\ЭлементыФормы.Закладки.ert - правильный класс для закладок
\ExtForms\служб_ПросмотрСЗ_ТЗ_ИТЗ.ert - ИТЗ с отбором

в твоем творении пару строк черкать смысла не вижу, т.к. подход изначально неправильный, но черкнул)) там же в архиве.



а в обработке \ExtForms\служб_ПросмотрСЗ_ТЗ_ИТЗ.ert класс УправлениеФормой это какой то старый класс? смотрю что а поставщике нет его?
  
Наверх
 
IP записан
 
Dolly_EV
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 152
Местоположение: Чита
Зарегистрирован: 22. Октября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1103 - 15. Июля 2014 :: 00:11
Печать  
barbitura писал(а) 14. Июля 2014 :: 18:18:
а в обработке \ExtForms\служб_ПросмотрСЗ_ТЗ_ИТЗ.ert класс УправлениеФормой это какой то старый класс? смотрю что а поставщике нет его?

УправлениеФормой - он к Поставщику не относится, есть отдельная ветка про него:
http://www.1cpp.ru/forum/YaBB.pl?num=1278756052
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1104 - 17. Июля 2014 :: 20:31
Печать  
Amel писал(а) 14. Июля 2014 :: 10:16:
ув. коллеги!
не могу никак осилить кастомное контекстное меню. Это вообще возможно?

См.

ПриФормированииКонтекстногоМеню
Синтаксис: ПриФормированииКонтекстногоМеню(КонтекстноеМеню, ФСО)
Параметры:
•      КонтекстноеМеню – Список значений для формирования контекстного меню
•      ФСО – флаг стандартной обработки
Описание: Методы вызывается только если АвтоКонтекстноеМеню = 0. В данном событии контекстное меню можно наполнить собственными данными. При этом можно использовать следующие номера команд (значения списка):
•      1 – Добавить строку
•      2 – Изменить строку
•      3 – Скопировать строку
•      4 – Удалить строку
•      5 – Переместить строку вверх
•      6 – Переместить строку вниз
•      7 – Сортировать по возрастанию
•      8 – Сортировать по убыванию
•      9 – Вывести список
•      10 – Настройка списка
•      11 – Обновить
•      + Номера команд конкретного расширения
  

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


bookkeeping considered
harmful

Сообщений: 30
Местоположение: Dombabwe
Зарегистрирован: 05. Ноября 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1105 - 22. Июля 2014 :: 08:18
Печать  
Вопрос по ЭлементыФормы.Привязка
Если форма открывается в развернутом виде, то ПоставщикДанных на форме не изменяет размер. После минимизации/максимизации все приходит в норму. Выглядит как-то так
http://i.imgur.com/vCaowNg.png
Во вложении немного подправленная обработка, взятая где-то в окрестностях
1cpp 3.2.4.1
formex 2.0.5.108
Поставщикданных/Привязка последние из этой темы
  

__________________001.zip ( 25 KB | Загрузки )
Наверх
 
IP записан
 
Alexx_S
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Местоположение: UA
Зарегистрирован: 23. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1106 - 22. Июля 2014 :: 09:12
Печать  
Для начала :
Процедура ПослеОткрытия()
    Форма.КП_.Видимость(0);
    Форма.КП_.Видимость(1);
КонецПроцедуры

в ПриОткрытии()         
Попытка
       УправлениеФормой = СоздатьОбъект("УправлениеФормой");
     ПривязкаЭлементов();
Исключение

КонецПопытки;
     

//======================================================================
Процедура ПривязкаЭлементов()
     ПривязкаЭлементов = УправлениеФормой.ПривязкаЭлементов;
     ЭлементПривязки = ПривязкаЭлементов.Добавить("ТП_");
     ЭлементПривязки.Установить("Верх", "В", "Форма");
     ЭлементПривязки.Установить("Низ", "Н", "Форма");
     ЭлементПривязки.Установить("Лево", "Л", "Форма");
     ЭлементПривязки.Установить("Право", "П", "Форма");

     ПривязкаЭлементов.Привязать();
КонецПроцедуры
     
  
Наверх
 
IP записан
 
Alexx_S
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Местоположение: UA
Зарегистрирован: 23. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1107 - 22. Июля 2014 :: 09:13
Печать  
Может пригодится :
//========================
Процедура глМаксимизироватьОкно()
     // вызывать в конце процедуры "ПриОткрытии" из модуля формы
     WSHShell = СоздатьОбъект("WScript.Shell");
     WSHShell.SendKeys("%");
     WSHShell.SendKeys("{LEFT}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}");
КонецПроцедуры
  
Наверх
 
IP записан
 
Mink Snopes
Junior Member
**
Отсутствует


bookkeeping considered
harmful

Сообщений: 30
Местоположение: Dombabwe
Зарегистрирован: 05. Ноября 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1108 - 22. Июля 2014 :: 11:35
Печать  
Alexx_S писал(а) 22. Июля 2014 :: 09:12:
Для начала :
...
в ПриОткрытии()        
Попытка
       УправлениеФормой = СоздатьОбъект("УправлениеФормой");
     ПривязкаЭлементов();
Исключение

КонецПопытки;
...

Как я понял УправлениеФормой - устаревший класс, от которого в текущей поставке осталась только документация, вместо него - ЭлементыФормы. Как-то так:
Код
Выбрать все
Привязка = СоздатьОбъект("ЭлементыФормы.Привязка");
Привязка.ВключитьПерехватСобытий(Контекст);
Привязка.ПривязатьЭлемент("ТП_", 1, 1, 1, 1); 



Alexx_S писал(а) 22. Июля 2014 :: 09:13:
Может пригодится :
//========================
Процедура глМаксимизироватьОкно()
     // вызывать в конце процедуры "ПриОткрытии" из модуля формы
     WSHShell = СоздатьОбъект("WScript.Shell");
     WSHShell.SendKeys("%");
     WSHShell.SendKeys("{LEFT}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}");
КонецПроцедуры

Подобное шаманство помогает, если его поместить в правильном месте. У меня получилось, если такое делать до вызова ПоставщикДанных.Обновить() (хотя я делал средствами formex, но вряд ли есть разница).


В общем удалось найти типа решение - создавать ПоставщикДанных в ПослеСозданияФормы, а вызывать ПоставщикДанных.Обновить() в ПослеОткрытия. Хотя и потребовалось расставлять нужные слова в правильном порядке:
  • Вызывать ЭлементыФормы.Привязка() необходимо до ПоставщикДанных.Обновить()
  • Вызывать Форма.КоманднаяПанель.Видимость({0,1}) строго после ПоставщикДанных.Обновить()
  • И самое непонятное - создание ПоставщикДанных и вызов ПоставщикДанных.Обновить() ну никак не хотят отрабатывать (не ломая привязки) в одной процедуре, будь то ПослеСозданияФормы или ПослеОткрытия

На данный момент понятно только то, что ничего непонятно, буду копать дальше, если умом не тронусь, конечно)
  
Наверх
 
IP записан
 
Alexx_S
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Местоположение: UA
Зарегистрирован: 23. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1109 - 22. Июля 2014 :: 11:43
Печать  
вот кусок моей обработки :

//======================================================================
Процедура ПослеСозданияФормы()
     УстановитьПоставщикаДанныхОстатки();
     УстановитьПоставщикаДанныхПартии();
     ПолучитьТаблицу();
     ПолучитьАлфавит();
     ИнициализацияАлфавита();
     УстановитьПоставщикаДанныхДокТЧ();
     УстановитьПоставщикаДанныхКонтр();
     
КонецПроцедуры      // ПослеСозданияФормы
//======================================================================
Процедура ПослеОткрытия()
     Форма.КПДокТЧ.Видимость(0);
     Форма.КПДокТЧ.Видимость(1);
КонецПроцедуры
//======================================================================
Процедура ПриОткрытии()
     ВидыСравнения = СоздатьОбъект("ВидыСравнения"); // для удобства работы с отборами
     глПалитраЦветов = СоздатьОбъект("ПоставщикДанных.ПалитраЦветов");
     Попытка
     УправлениеФормой = СоздатьОбъект("УправлениеФормой");
     ПривязкаЭлементов();
     Исключение
     КонецПопытки;
     ОчиститьОкноСообщений();
     глМаксимизироватьОкно();
КонецПроцедуры // ПриОткрытии


Привязку можна делать в ПриОткрытии()
Вызывать Форма.КоманднаяПанель.Видимость({0,1}) делается в ПослеОткрытия()
создание ПоставщикДанных и вызов ПоставщикДанных.Обновить()  делается в ПослеСозданияФормы() (у меня там вызов процедур где происходит инициализация поставщика и в конце процедуры ПоставщикДанных.Обновить())
  
Наверх
 
IP записан
 
Alexx_S
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Местоположение: UA
Зарегистрирован: 23. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1110 - 22. Июля 2014 :: 11:44
Печать  
Подобное шаманство помогает, если его поместить в правильном месте :
Написано
Процедура глМаксимизироватьОкно()
     // вызывать в конце процедуры "ПриОткрытии" из модуля формы.......
  
Наверх
 
IP записан
 
Mink Snopes
Junior Member
**
Отсутствует


bookkeeping considered
harmful

Сообщений: 30
Местоположение: Dombabwe
Зарегистрирован: 05. Ноября 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1111 - 22. Июля 2014 :: 12:44
Печать  
Alexx_S писал(а) 22. Июля 2014 :: 11:43:
Привязку можна делать в ПриОткрытии()
Вызывать Форма.КоманднаяПанель.Видимость({0,1}) делается в ПослеОткрытия()
создание ПоставщикДанных и вызов ПоставщикДанных.Обновить()  делается в ПослеСозданияФормы() (у меня там вызов процедур где происходит инициализация поставщика и в конце процедуры ПоставщикДанных.Обновить())


Если привязывать в ПриОткрытии, то у меня получается такое, хотя наша дискуссия получается ни о чем, поскольку разные классы для привязок используем


По поводу SendKeys - окей, я не возражаю
  
Наверх
 
IP записан
 
Alexx_S
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Местоположение: UA
Зарегистрирован: 23. Сентября 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1112 - 22. Июля 2014 :: 12:47
Печать  
Mink Snopes писал(а) 22. Июля 2014 :: 12:44:
Alexx_S писал(а) 22. Июля 2014 :: 11:43:
Привязку можна делать в ПриОткрытии()
Вызывать Форма.КоманднаяПанель.Видимость({0,1}) делается в ПослеОткрытия()
создание ПоставщикДанных и вызов ПоставщикДанных.Обновить()  делается в ПослеСозданияФормы() (у меня там вызов процедур где происходит инициализация поставщика и в конце процедуры ПоставщикДанных.Обновить())


Если привязывать в ПриОткрытии, то у меня получается такое, хотя наша дискуссия получается ни о чем, поскольку разные классы для привязок используем
http://i.imgur.com/0In56Mh.png

По поводу SendKeys - окей, я не возражаю



А если так ?

//======================================================================
Процедура ПривязкаЭлементов()
     ПривязкаЭлементов = УправлениеФормой.ПривязкаЭлементов;

     ЭлементПривязки = ПривязкаЭлементов.Добавить("КП_");
     ЭлементПривязки.Установить("Верх", "В", "Форма");
     ЭлементПривязки.Установить("Низ", "В", "Форма");
     ЭлементПривязки.Установить("Лево", "Л", "Форма");
     ЭлементПривязки.Установить("Право", "П", "Форма");

     ЭлементПривязки = ПривязкаЭлементов.Добавить("ТП_");
     ЭлементПривязки.Установить("Верх", "Н", "КП_");
     ЭлементПривязки.Установить("Низ", "Н", "Форма");
     ЭлементПривязки.Установить("Лево", "Л", "Форма");
     ЭлементПривязки.Установить("Право", "П", "Форма");

     ПривязкаЭлементов.Привязать();
КонецПроцедуры
  
Наверх
 
IP записан
 
Mink Snopes
Junior Member
**
Отсутствует


bookkeeping considered
harmful

Сообщений: 30
Местоположение: Dombabwe
Зарегистрирован: 05. Ноября 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1113 - 22. Июля 2014 :: 13:22
Печать  
Так не выйдет
Код
Выбрать все
\БАНКОВСКИЕВЫПИСКИ.ERT(7)}: Неудачная попытка создания объекта (УправлениеФормой) 


Но в целом да, я подозреваю что класс УправлениеФормой мог сам заниматься установкой хуков и разруливать, когда ему вычислять размеры контролов/формы. Тот класс, который пришел на замену (ЭлементыФормы.Привязка) ничего подобного не делает и требует явного вызова ВключитьПерехватСобытий(Конт). Тут не помешал бы комментарий автора, так что ничего не остается как смиренно подождать.


UPD. Ага, оказывется УправлениеФормой - отдельная разработка, нашел тему, буду проверять

UPD1. Все получилось с использованием "УправлениеФормой" (http://www.1cpp.ru/forum/YaBB.pl?num=1278756052/39#39), как-то так:
Код
Выбрать все
Процедура ПриОткрытии()
...
	УправлениеФормой = СоздатьОбъект("УправлениеФормой");
	Привязка = УправлениеФормой.ПривязкаЭлементов;
	Параметры = Привязка.Добавить("ТП_");
	Параметры.Право.Вид = Привязка.ПраваяГраница;
	Параметры.Право.Элемент = "Форма";
	Параметры.Низ.Вид = Привязка.НижняяГраница;
	Параметры.Низ.Элемент = "Форма";
	Привязка.Привязать();
КонецПроцедуры 


В общем, как и было в оригинальном примере. Alexx_S, спасибо!
« Последняя редакция: 24. Июля 2014 :: 06:06 - Mink Snopes »  
Наверх
 
IP записан
 
Fisco
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 26. Июня 2014
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1114 - 31. Июля 2014 :: 20:17
Печать  
Какая-то черная магия! Простейшая обработка, все работает нормально. НО!
При закрытии формы высыпает ряд проблем:
"ПоставщикДанных.ТабличноеПоле::СохранитьПозициюКолонок() : Поле агрегатного объекта не обнаружено
ие");
ert(698) }

ПоставщикДанных.ТабличноеПоле::ПриУничтожении() : ПоставщикДанных.ТабличноеПоле::СохранитьПозициюКолонок() : Поле агрегатного объекта не обнаружено
ие");
ert(698) }

я().СохранитьПозициюКолонок();
ert(509) }

ПоставщикДанных.ТабличноеПоле::ПриУничтожении() : ПоставщикДанных.ТабличноеПоле::СохранитьПозициюКолонок() : Поле агрегатного объекта не обнаружено
ие");
ert(698) }

я().СохранитьПозициюКолонок();
ert(509) }

ПоставщикДанных.ТабличноеПоле::СохранитьПозициюКолонок() : Поле агрегатного объекта не обнаружено
ие");
ert(698) }

ПоставщикДанных.ТабличноеПоле::ПриУничтожении() : ПоставщикДанных.ТабличноеПоле::СохранитьПозициюКолонок() : Поле агрегатного объекта не обнаружено
ие");
ert(698) }

я().СохранитьПозициюКолонок();
ert(509) }

ПоставщикДанных.ТабличноеПоле::ПриУничтожении() : ПоставщикДанных.ТабличноеПоле::СохранитьПозициюКолонок() : Поле агрегатного объекта не обнаружено
ие");
ert(698) }

я().СохранитьПозициюКолонок();
ert(509) }
"
Причем иногда высыпает, а иногда нет! Обработку прицепил.

З.Ы. Шаман не пьян.
  

________5.ert ( 17 KB | Загрузки )
Наверх
 
IP записан
 
Fisco
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 26. Июня 2014
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1115 - 08. Августа 2014 :: 04:17
Печать  
Вопрос решен.
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1116 - 28. Августа 2014 :: 06:45
Печать  
ПоставщикДанных.Справочник
не работает отбор по колонке "ЭтоГруппа"



если поставить отбор ЭтоГруппа = 1, то работает, а ЭтоГруппа = 0 не работает ((((
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1117 - 28. Августа 2014 :: 07:53
Печать  
ПоставщикДанных.Справочник
Если тип кода "Строковый", то новый код формируется не уникальным. Для себя внес поправки:

Код
Выбрать все
Функция ПолучитьНовыйКодСправочника()
	Если МетаСправочник.ДлинаКода = 0 Тогда
		Возврат 1;
	КонецЕсли;

	ТекстЗапросаКода = "select max(sc_vt.code) as МаксКод
	|from Справочник." + ВидСправочника + " as sc_vt $nolock
	|";

	Если МетаСправочник.СерииКодов = "ВПределахПодчинения" Тогда
		Если (МетаСправочник.Владелец.Выбран() = 1) И (РодительВерхнегоУровня.Уровень() = 0) Тогда
			ТекстЗапросаКода = ТекстЗапросаКода + "where sc_vt.parentext = '"+МетаДата.ЗначениеВСтрокуБД(Владелец)+"'
			|";
		ИначеЕсли МетаСправочник.КоличествоУровней > 1 Тогда
			ТекстЗапросаКода = ТекстЗапросаКода + "where sc_vt.parentid = '"+МетаДата.ЗначениеВСтрокуБД(РодительВерхнегоУровня)+"'
			|";
		КонецЕсли;
	КонецЕсли;

	ПрямойЗапрос.РежимОтладки = РежимОтладки;
	Результат = ПрямойЗапрос.Выполнить(,ТекстЗапросаКода);
	ЗначениеКода = Результат.ПолучитьЗначение(1,1);
	Если МетаСправочник.ТипКода = "Текстовый" Тогда
		Если ПустоеЗначение(ЗначениеКода) = 1 Тогда
			Возврат Формат(1, "Ч(0)" + МетаСправочник.ДлинаКода); // [+] Asakra
		КонецЕсли;

		// отделим числовую часть от текстовой
		ДлинаЗначения = СтрДлина(ЗначениеКода);
		СтрЧислоЗначения = "";
		СтрОстатокКода = ЗначениеКода;
		Для НомерСимвола = 0 По ДлинаЗначения-1 Цикл
			Символ = Сред(ЗначениеКода,ДлинаЗначения-НомерСимвола,1);
			Если Найти("0123456789",Символ) > 0 Тогда
				СтрЧислоЗначения = Символ + СтрЧислоЗначения;
				СтрОстатокКода = Лев(СтрОстатокКода,СтрДлина(СтрОстатокКода)-1);
			Иначе
				Прервать;
			КонецЕсли;
		КонецЦикла;

		// если числовая часть пуста вернем максимальное значение
		// иначе увеличим числовую часть на 1, добавим представление к остатку кода и обрежем до необходимой длины с левой части
		Если ПустоеЗначение(СтрЧислоЗначения) = 1 Тогда
			НовоеЗначение = ЗначениеКода;
		Иначе
			ЗначениеКодаЧисло = Число(СтрЧислоЗначения);

			// [+] Asakra
			ЛидирующиеНули = СтрЗаменить(СтрЧислоЗначения, Строка(ЗначениеКодаЧисло), "");

			НовоеЗначение = Лев(СтрОстатокКода + ЛидирующиеНули + (ЗначениеКодаЧисло + 1), МетаСправочник.ДлинаКода);
			// [+] Asakra
		КонецЕсли;
	Иначе
		ЗначениеКода = Число(ЗначениеКода);
		НовоеЗначение = ЗначениеКода + 1;
	КонецЕсли;
	Возврат НовоеЗначение;
КонецФункции 

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


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1118 - 28. Августа 2014 :: 09:16
Печать  
Asakra писал(а) 28. Августа 2014 :: 06:45:
не работает отбор по колонке "ЭтоГруппа"


пока сделал так:
Код
Выбрать все
Функция СформироватьТекстОтбора()
	ТекстОтбора = Сервис.ПолучитьСтрокуОтбора(СвойствоОтбор, ПрямойЗапрос);
	Если ПустоеЗначение(ТекстОтбора) = 1 Тогда
		Возврат "";
	КонецЕсли;

	// [-] Asakra, 28.08.2014
	//Если МетаСправочник.КоличествоУровней > 1 Тогда
	//	ТекстОтбора = "(" + ТекстОтбора + " or [ОсновнаяТаблица].isfolder = 1)";
	//КонецЕсли;
	// [-] _

	ТекстОтбора = СтрЗаменить(ТекстОтбора,"[ОсновнаяТаблица]","ТекущийОбъект");

	Возврат ТекстОтбора;
КонецФункции 



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


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1119 - 28. Августа 2014 :: 09:18
Печать  
При иерархическом просмотре отбор всегда идет по принципу "ОтборПользователя + ИЛИ ЭтоГруппа = ЛОЖЬ". Т.е. чтобы показывать иерархию справочника.
Таким образом правильно отбор будет работать, если выключить иерархический просмотр.

По второму вопросу, посмотрю если не забуду Подмигивание
  

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


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1120 - 28. Августа 2014 :: 09:24
Печать  
vandalsvq писал(а) 28. Августа 2014 :: 09:18:
если выключить иерархический просмотр.


я это первым делом пробовал - не работает! (((
могу скрин выложить....
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1121 - 28. Августа 2014 :: 09:28
Печать  
вот так:
Код
Выбрать все
Если (МетаСправочник.КоличествоУровней > 1) И (ИерархическийПросмотр = 1) Тогда 



работает как вы говорите
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1122 - 28. Августа 2014 :: 09:38
Печать  
мне почему-то казалось, что в 8-ке не важно включена ли иерархия. проверил. таки да - нужно снять иерархию.
тогда оставлю так.
спасибо за наводку Улыбка
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1123 - 30. Августа 2014 :: 02:44
Печать  
Еще ошибка:
ПоставщикДанных.Справочник и ПоставщикДанных.ВыборГруппы

Код
Выбрать все
ПрямойЗапрос::ПодготовитьПараметризованныйЗапрос() : no such column: $СпрСкидки.Процент
ЗапросSQLite.Подготовить(ПараметризированныйТекст);
{E:\Data1C\Test\Классы\ПрямыеЗапросы\ПрямойЗапрос.ert(13169) }

ПрямойЗапрос.ПодготовитьПараметризованныйЗапрос();
{E:\DATA1C\TEST\КЛАССЫ\ПОСТАВЩИКДАННЫХ\ПОСТАВЩИКДАННЫХ.ВЫБОРГРУППЫ.ERT(68)}: ПрямойЗапрос::ПодготовитьПараметризованныйЗапрос() : no such column: $СпрСкидки.Процент
ЗапросSQLite.Подготовить(ПараметризированныйТекст);
{E:\Data1C\Test\Классы\ПрямыеЗапросы\ПрямойЗапрос.ert(13169) } 



окошко выбора группы открывается, но при разворачивании иерархии возникает ошибка.
при этом установлен отбор по доп. колонке, т.е. "$СпрСкидки.Процент", является колонкой добавленной через процедуру "ДобавитьСоединениеДанных".
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1124 - 30. Августа 2014 :: 05:19
Печать  
Попробуй сначала сделать тестовую выборку из полученного прямого запроса, типа "Выбрать первые 1 * из ...", чтобы посмотреть - какой колонкой выглядит это твое соединение. Возможно оно уже будет выглядеть как "Процент", и преобразовывать ее через метапарсер (тот самый волшебный знак доллара "$") не надо.
  
Наверх
ICQ  
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1125 - 30. Августа 2014 :: 11:50
Печать  
Salimbek писал(а) 30. Августа 2014 :: 05:19:
Попробуй сначала сделать тестовую выборку из полученного прямого запроса, типа "Выбрать первые 1 * из ...", чтобы посмотреть - какой колонкой выглядит это твое соединение. Возможно оно уже будет выглядеть как "Процент", и преобразовывать ее через метапарсер (тот самый волшебный знак доллара "$") не надо.


да пока не критично. самому влазить в чужую поделку не всегда хочется  Круглые глаза
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1126 - 30. Августа 2014 :: 12:08
Печать  
да и маловероятно, что там дело в $.
думаю там join вообще не нужен и не важно какой отбор установлен, ибо к дереву групп это не имеет отношения.
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1127 - 30. Августа 2014 :: 12:15
Печать  
в выбор группы еще бы добавить, что бы дерево разворачивалось до текущего элемента, было б СУПЕР! Улыбка
  
Наверх
 
IP записан
 
ZOOBR
Junior Member
**
Отсутствует



Сообщений: 22
Зарегистрирован: 17. Апреля 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1128 - 03. Сентября 2014 :: 12:07
Печать  
А ПоставщикДанных.Журнал у всех тормозит или я чего-то не догоняю? Достался в наследство журнал реализованный на классе ПоставщикДанных  и сразу же начали поступать жалобы на тормоза!! Проверил, и правда тормозит. Тормозит при отборе по контрагенту, когда установленный период довольно большой(год-два). Покопавшись в коде ничего особенного не заметил, но чтобы точно проверить сделал журнал на несколько видов документов с нуля, кода там строк на 50(приложил к сообщению, работает на конфигурации ТИС) и тормоза подтвердились.  ПлачущийПри выборе контрагента задумывается секунд на 5-10, бывает и меньше но тем не менее задумывается стабильно. Плюс к тому после отбора список нормально листать колесом мыши нереально Смущённый. Листается нормально только вниз, а если вверх тормозит при прокрутке. Без отбора такого не наблюдается, то есть отключаем отбор и всё листается как надо! Можно как-то это разрулить эти две проблемы или это особенность данного класса и остается смириться?
  

_______008.ert ( 43 KB | Загрузки )
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1129 - 03. Сентября 2014 :: 12:52
Печать  
индекса нет подходящего, вот и тормозит
  

1&&2&&3
Наверх
 
IP записан
 
ZOOBR
Junior Member
**
Отсутствует



Сообщений: 22
Зарегистрирован: 17. Апреля 2008
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1130 - 03. Сентября 2014 :: 13:32
Печать  
trad писал(а) 03. Сентября 2014 :: 12:52:
индекса нет подходящего, вот и тормозит

А какой ему индекс то нужен? И как его сделать? Уточню, что база DBF!!
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1131 - 07. Сентября 2014 :: 05:35
Печать  
ZOOBR писал(а) 03. Сентября 2014 :: 13:32:
trad писал(а) 03. Сентября 2014 :: 12:52:
индекса нет подходящего, вот и тормозит

А какой ему индекс то нужен? И как его сделать? Уточню, что база DBF!!


индекс 1С добавит, если добавить контрагента в общие реквизиты.
или сервер на замену. у меня подвисает на установке отбора и при переходе в конец или в начало. а вот на локальной машине тупит при скролинге. период ставлю полный, из них 7 лет свернуто (хвосты), а 2 рабочих. база dbf.
еще можно попробовать создать журнал, где будут только используемые или нужные документы - немного легче станет.
  
Наверх
 
IP записан
 
latex86
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 25. Августа 2014
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1132 - 10. Сентября 2014 :: 08:44
Печать  
Добрый день.
Подскажите как сделать так чтобы все установленные отборы при открытии журнала и отборы по колонкам отображались в настройках отбора? А то сейчас там только "предопределенные".

отборы устанавливаю так послесозданияформы


     Отбор.ДатаДокумента.ВидСравнения = "Интервал";
     Отбор.ДатаДокумента.Использование = 1;
     Отбор.ДатаДокумента.ЗначениеС = ДатаС;
     Отбор.ДатаДокумента.ЗначениеПо = ДатаПо;
  
Наверх
 
IP записан
 
andrmit
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 24
Зарегистрирован: 23. Августа 2010
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1133 - 18. Сентября 2014 :: 09:58
Печать  
Возможно ли с помощью ПоставщикаДанных вывести иерархический справочник, но иерархия не по ЭтоГруппа, по по другому реквизиту справочника?
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1134 - 01. Октября 2014 :: 03:56
Печать  
Еще ошибка обнаружилась.
ПоставщикДанных.ИндексированнаяТаблица.
Код
Выбрать все
Процедура ПриЗаписи_ИндексированнаяТаблица(Параметр)
	ТипЗнч = ТипЗначенияСтр(Параметр);
	Если (ТипЗнч <> "ИндексированнаяТаблица") или (ТипЗнч <> "ТаблицаЗначений") Тогда
		Возврат;
	КонецЕсли;
	ИндексированнаяТаблица.Очистить();
	ИндексированнаяТаблица.Загрузить(Параметр);
КонецПроцедуры	// ПриЗаписи_ИндексированнаяТаблица
 



нужно "или" заменить на "и"...
  
Наверх
 
IP записан
 
barbitura
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 135
Зарегистрирован: 22. Мая 2013
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1135 - 02. Октября 2014 :: 09:06
Печать  
Dolly_EV писал(а) 27. Июня 2014 :: 05:51:
Fisco писал(а) 27. Июня 2014 :: 05:01:
Да нутром чую что хню....
Dolly_EV, мил человек, а не затруднит ли черкнуть в моем творении пару правильных строк с отбором? У самого видимо руки уже не те...  Печаль

В прилагаемом файле:
\CLASSES\ПоставщикДанных\ПОСТАВЩИКДАННЫХ.ИНДЕКСИРОВАННАЯТАБЛИЦА.ERT - поправленный класс из набора "Поставщика" с расшаренным параметром.
\CLASSES\ЭлементыФормы\ЭлементыФормы.Закладки.ert - правильный класс для закладок
\ExtForms\служб_ПросмотрСЗ_ТЗ_ИТЗ.ert - ИТЗ с отбором

в твоем творении пару строк черкать смысла не вижу, т.к. подход изначально неправильный, но черкнул)) там же в архиве.


Может можно сделать что бы в служб_ПросмотрСЗ_ТЗ_ИТЗ.ert  работал отбор по группам отбора если тип группы "И" и "ИЛИ"?

  

123_009.JPG ( 15 KB | Загрузки )
123_009.JPG
Наверх
 
IP записан
 
Gimalaj
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 15. Февраля 2011
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1136 - 28. Октября 2014 :: 14:10
Печать  
Здравствуйте, камрады. Подскажите, как можно запретить выбор значений в табличном поле (поставщик данных - индексированная таблица)? Установка атрибута РежимВыбора=0 не срабатывает. В методе Выбор() флага стандартной обработки нет. Куда копать?
  
Наверх
 
IP записан
 
Gimalaj
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 15. Февраля 2011
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1137 - 28. Октября 2014 :: 14:20
Печать  
Gimalaj писал(а) 28. Октября 2014 :: 14:10:
Установка атрибута РежимВыбора=0 не срабатывает.

А вот РежимВыбора=1 сработало! Ошибка(опечатка) в классе (или в документации  Улыбка )?
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1138 - 16. Ноября 2014 :: 05:37
Печать  
подскажите, как активизировать строку, если тип данных справочник?

так
ТабличноеПоле.ТекущаяСтрока = СсылкаСправочника;
не работает

в доке:
ТекущаяСтрока. Атрибут ЭУ ТабличноеПоле «ТекущаяСтрока» содержит ссылку на текущий элемент справочника. Для установки ТП на какой-либо строке необходимо установить элемент, строку которого необходимо получить, в свойство «ТекущаяСтрока».
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1139 - 16. Ноября 2014 :: 06:05
Печать  
вот Ё! называется, догадайся сам Улыбка

ТекущийЭлемент = Форма.Параметр;
Если ПустоеЗначение(ТекущийЭлемент) = 0 Тогда
     ДанныеТабличногоПоля.РодительВерхнегоУровня = ТекущийЭлемент.Родитель;
КонецЕсли;

ДанныеТабличногоПоля.Обновить();

Если ПустоеЗначение(ТекущийЭлемент) = 0 Тогда
     ТабличноеПоле.ТекущаяСтрока = ТекущийЭлемент;
КонецЕсли;

не плохо бы доку поправить
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1140 - 16. Ноября 2014 :: 06:11
Печать  
однако это тянется с доки Табличного поля. там тоже: "Определяет текущую строку табличного поля. Cвойство обслуживается установленным поставщиком данных. При записи в это свойство, произойдет активизация соответствующей строки табличного поля"
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1141 - 16. Ноября 2014 :: 06:24
Печать  
если кому нужно будет, допилил класс так:
Код
Выбрать все
Процедура АктивизироватьСтроку(Ссылка) Экспорт

	Если (ТипЗначенияСтр(Ссылка) <> "Справочник") ИЛИ (ПустоеЗначение(Ссылка) = 1) Тогда
		я().Обновить();
		Возврат;
	КонецЕсли;

	РодительВерхнегоУровня = Ссылка.Родитель;

	я().Обновить();

	ТабличноеПоле.ТекущаяСтрока = Ссылка;

КонецПроцедуры // АктивизироватьСтроку()
 



внутреннюю процедуру АктивизироватьСтроку пришлось переименовать.
  
Наверх
 
IP записан
 
Igor Nikolaenko
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 47
Зарегистрирован: 01. Апреля 2010
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1142 - 19. Ноября 2014 :: 09:30
Печать  
Предлагаю внести изменение в Классе "Объекты_v8\ЭлементОтбора.ert".

Исправляем ошибку, которая возникает при добавлении отбора по реквизиту справочника или документа с типом "дата" и вид отбора "между".

Функция, в которую вносим исправление:

Функция ПолучитьТекстЗапроса(ПрямойЗапрос = "") Экспорт

далее кусок кода с исправлением:

ИначеЕсли Лев(ВрегВидСравнения,8) = "ИНТЕРВАЛ" Тогда
           //*Николаенко И.Н., 2014-11-19, исправление и оптимизация условия запроса
           //СтрокаЗначения = РеквизитЗапроса+" between :p_start_"+_Имя+"
           //|      and :p_end_"+_Имя+?(ТипЗначения(ЗначениеСравненияC) = 3,"~","");
           // -------------

           Если Найти(РеквизитЗапроса,"[ТаблицаЖурнала].date_time_iddoc") > 0 Тогда
                 // это условие на дату документа, для попадания в индекс, используем сравнение без преобразования date_time_iddoc
                 СтрокаЗначения = "[ТаблицаЖурнала].date_time_iddoc between :p_start_"+_Имя+" and :p_end_"+_Имя+"~";
           Иначе

                 // это условие на обычный реквизит (число, дата или строка)
                 СтрокаЗначения = РеквизитЗапроса+" between :p_start_"+_Имя+" and :p_end_"+_Имя;
           КонецЕсли;

           //*_
           Если ПустоеЗначение(ПрямойЗапрос) = 0 Тогда
                 ПрямойЗапрос.УстановитьТекстовыйПараметр("p_start_"+_Имя,ЗначениеСравненияC);
                 ПрямойЗапрос.УстановитьТекстовыйПараметр("p_end_"+_Имя,ЗначениеСравненияПо);
           КонецЕсли;
  
Наверх
 
IP записан
 
newbas
Junior Member
**
Отсутствует



Сообщений: 32
Местоположение: Краснодар
Зарегистрирован: 29. Августа 2008
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1143 - 12. Декабря 2014 :: 11:00
Печать  
Почему-то не получается установить сортировку в справочнике. В процедуре "ПослеСозданияФормы" при инициализации ТП добавил код

Код
Выбрать все
	ТабличноеПоле.ВосстановитьПозициюКолонок();
	ТабличноеПоле.ТекущаяКолонка = ТабличноеПоле.Колонки.Получить("Код");
	ТабличноеПоле.СортироватьПоВозрастанию();
	ПоставщикДанныхМногострочнаяЧасть.Обновить();
 


Однако сортировка все равно стоит по наименованию. В чем может быть причина?
  
Наверх
 
IP записан
 
JB
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 24. Февраля 2015
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1144 - 25. Февраля 2015 :: 13:12
Печать  
Помогите, пожалуйста!
Есть табличное поле с источником - ИТ. Таблицу я сначала заполняю счетами, затем добавляю признаки галочками и запускаю обработку.

Как можно сделать так: при добавлении строки в ТП сразу открывать журнал счетов, где я выбираю счет.
И как сделать чтобы после выбора счета в колонку "клиент" автоматом добавлялось значение "Клиент" из счета?
  

1CPP.jpg ( 18 KB | Загрузки )
1CPP.jpg
Наверх
 
IP записан
 
JB
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 24. Февраля 2015
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1145 - 26. Февраля 2015 :: 13:34
Печать  
Отвечу сам себе  Очень довольный

Сделал так:

Код
Выбрать все
Процедура ТПСписокСчетовПередНачаломДобавления(ТабличноеПоле,Копир,ФСО) // Предопределенная из "Поставщика данных"
	Если Копир=1 Тогда
		Возврат;
	КонецЕсли;
	ИТЗ=ПДСписокСчетов.Данные.ИндексированнаяТаблица;
	ИТЗ.НоваяСтрока();
    ТабличноеПоле.ОбновитьСтроки();
    ТабличноеПоле.ТекущаяСТрока = ИТЗ.КоличествоСтрок();
	Колонка = ТабличноеПоле.Колонки.Получить("Счет");
	ТабличноеПоле.Выбор(ТабличноеПоле.ТекущаяСТрока,Колонка,3) ;
	Сервис.SendKeys("{F4}");
    ФСО=0;
КонецПроцедуры 



Понимаю, что криво. Можно ли как-нибудь без F4?
B еще пара вопросов:
1. поставщик данных находится на форме документа с многострочной частью. И при нажатии ins или del происходят события одновременно и в табличном поле, и в многострочной части. Где можно поставить ФСО=0?
2. Как запретить редактирование конкретной колонки?
  
Наверх
 
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1146 - 15. Марта 2015 :: 02:51
Печать  
подскажите как победить
Код
Выбрать все
ПоставщикДанных.ИндексированнаяТаблица::ДобавитьДанныеОКолонке(Строка Идентификатор=Номенклатура, ОписаниеТипов ОписаниеТипов=, Строка Заголовок=Номенклатура, Число ШиринаКолонки=40, Число Итоги=0, Число ОтметкаНезаполненного=0) : Неверно указан номер строки!  Номер строки = 1, всего строк = 0
Колонка = Колонки.Добавить(Идентификатор);
лица.ert(182) }

аЗначений ТаблицаЗначений=) : ПоставщикДанных.ИндексированнаяТаблица::ДобавитьДанныеОКолонке(Строка Идентификатор=Номенклатура, ОписаниеТипов ОписаниеТипов=, Строка Заголовок=Номенклатура, Число ШиринаКолонки=40, Число Итоги=0, Число ОтметкаНезаполненного=0) : Неверно указан номер строки!  Номер строки = 1, всего строк = 0
Колонка = Колонки.Добавить(Идентификатор);
лица.ert(182) }

я().НоваяКолонка(ИдентификаторКолонки,ТипВид,Длина,Точность,Заголовок,Ширина);
лица.ert(633) }

ДанныеТабличногоПоля.ЗаполнитьИзОбъекта(ТаблицаЦен);
{D:\DATA1C\DEVISE\ФОРМИРОВАНИЕЦЕН.ERT(1770)}: аЗначений ТаблицаЗначений=) : ПоставщикДанных.ИндексированнаяТаблица::ДобавитьДанныеОКолонке(Строка Идентификатор=Номенклатура, ОписаниеТипов ОписаниеТипов=, Строка Заголовок=Номенклатура, Число ШиринаКолонки=40, Число Итоги=0, Число ОтметкаНезаполненного=0) : Неверно указан номер строки!  Номер строки = 1, всего строк = 0
Колонка = Колонки.Добавить(Идентификатор);
лица.ert(182) }

я().НоваяКолонка(ИдентификаторКолонки,ТипВид,Длина,Точность,Заголовок,Ширина);
лица.ert(633) }
 

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


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1147 - 15. Марта 2015 :: 02:59
Печать  
найти источник проблемы не могу. сделал так.
Код
Выбрать все
Процедура ЗаполнитьИзОбъектаТаблицаЗначений(ТаблицаЗначений)
	я().Очистить();
	ТабличноеПоле.ОбновитьСтроки();
	//ТаблицаЗначений//:ТаблицаЗначений
	Для НомерКолонки = 1 По ТаблицаЗначений.КоличествоКолонок() Цикл
		ТипВид = "Неопределенный"; Длина = 0; Точность = 0; Заголовок = ""; Ширина = 0;
		ИдентификаторКолонки = ловок,Ширина);
		Если ПустаяСтрока(ТипВид) = 1 Тогда
			ТипВид = "Неопределенный";
		КонецЕсли;
		я().НоваяКолонка(ИдентификаторКолонки,ТипВид,Длина,Точность,Заголовок,Ширина);
	КонецЦикла;
	ИндексированнаяТаблица.Загрузить(ТаблицаЗначений);

	я().Обновить();
КонецПроцедуры	// ЗаполнитьИзОбъектаТаблицаЗначений
 



добавил: ТабличноеПоле.ОбновитьСтроки();
ошибку можно наблюдать, если вызвать дважды метод "ЗаполнитьИзОбъекта".
  
Наверх
 
IP записан
 
Kalen
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 185
Зарегистрирован: 29. Марта 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1148 - 24. Апреля 2015 :: 11:44
Печать  
Цитирую доку Цитата:
ВАЖНО
Объект «ПоставщикДанных.КоманднаяПанель» реализован на базе АктивИкс - “MSComctlLib.Toolbar.2” и имеет ограничения заложенные в данный объект. В том числе:
  • Объект может не отображаться на форме или отображаться не корректно, для этого достаточно в методе «ПослеОткрытия» (событие формы ВК FormEx) сделать видимость сначала = 0, затем = 1.


Не знаю как у вас, а у меня, не смотря на соблюдение данной рекомендации, панельки нет-нет да и подглюкивают при открытии форм. Да и надоело каждый раз писать Видимость(0/1). Засунул это внутрь класса и повесил на таймер. Панельки пропадать перестали.
  

toolbar.zip ( 11 KB | Загрузки )
Наверх
GTalkICQ  
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1149 - 07. Мая 2015 :: 15:07
Печать  
Столкнулся с следующей ситуацией.

При пометке на удаление в ПД.Справочник элемент и подчиненные справочники помечаются на удаление. А при снятии пометки - с элемента снимается пометка, а с подчиненных - нет!
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1150 - 14. Мая 2015 :: 08:55
Печать  
Почему бы не сделать в классе ПоставщикДанных.Справочник так:

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



Тогда не нужно будет прописывать везде, где используется этот класс, процедуру ПриВыбореЗначения для обработки выбора элемента, если форма открывалась в режиме выбора.

И аналогично в ПД.Журнал
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Asakra
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 83
Местоположение: Иркутск
Зарегистрирован: 28. Августа 2012
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1151 - 21. Мая 2015 :: 03:42
Печать  
alyuev писал(а) 14. Мая 2015 :: 08:55:
Почему бы не сделать в классе ПоставщикДанных.Справочник так:

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



Тогда не нужно будет прописывать везде, где используется этот класс, процедуру ПриВыбореЗначения для обработки выбора элемента, если форма открывалась в режиме выбора.

И аналогично в ПД.Журнал


а так разве не пойдет?
Код
Выбрать все
ПД.РежимВыбора = 1; 


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


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1152 - 21. Мая 2015 :: 07:50
Печать  
Нет.

ПД.РежимВыбора = 1 лишь активизирует процедуру класса ПриВыбореЭлемента. А уже в ней происходит вызов события "ПриВыбореЗначения" в контексте создания класса. А если "ПриВыбореЗначения" не прописана в контексте, то и ничего не произойдет, т.е. выбора значения.

Моё решение избавляет класс от этого недостатка.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1153 - 28. Мая 2015 :: 07:18
Печать  
Анализировал что же грузит мою информационную базу и заметил что табличные поля сделанные на Поставщике Данных генерируют неоптимальный запрос. А именно - не накладывается условие по виду документа (поле IDDOCDEF).
Внес исправления:
Файл: ПоставщикДанных.Документы.ert
Код
Выбрать все
Функция ПолучитьТекстИсточникаСбора(ТекстСоединения = "") 


Строка 150
Код
Выбрать все
|		on ТекущийОбъект.iddoc = ШапкаДокумента.iddoc 


заменить на
Код
Выбрать все
|		on ТекущийОбъект.iddoc = ШапкаДокумента.iddoc and ТекущийОбъект.IDDOCDEF = :ВидДокумента."+ВидДокумента+" 


И строка 134 аналогично.
Версия класса 5.0.5 23.05.2014.
Стало значительно легче - а то был INDEX SCAN по ACDATETIME теперь INDEX SEEEK по IDDOC+IDDOCDEF.
  
Наверх
IP записан
 
Igor Nikolaenko
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 47
Зарегистрирован: 01. Апреля 2010
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1154 - 28. Мая 2015 :: 12:13
Печать  
leshik писал(а) 28. Мая 2015 :: 07:18:
Стало значительно легче - а то был INDEX SCAN по ACDATETIME теперь INDEX SEEEK по IDDOC+IDDOCDEF.


Спасибо. Действительно, стало ещё быстрее.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1155 - 11. Июня 2015 :: 09:16
Печать  
А что, отбор по периодическому числовому реквизиту в классе невозможен?
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1156 - 11. Июня 2015 :: 13:07
Печать  
Пока решил так:

В классе ПолеНастройки.ert в методе СформироватьПолеЗапроса() добавил такое изменение:

Код
Выбрать все
			Если МетаРеквизит.Периодический = 1 Тогда
				//Для корректного отбора по периодическим, указываем, что это строка, но оставляем длину и точность, если значение реквизита = Число, чтобы корректно сравнить. См. ЭлементОтбора.ert ПолучитьТекстЗапроса()
				ВекторПоляЗапроса.ТипВид	 = "Строка";
				ВекторПоляЗапроса.Тип	     = "Строка";
				ВекторПоляЗапроса.Вид	     = "";
				ВекторПоляЗапроса.Длина	   = МетаРеквизит.Длина;
				ВекторПоляЗапроса.Точность	= МетаРеквизит.Точность;
			Иначе
				ВекторПоляЗапроса.ТипВид	  = МетаРеквизит.Тип + ?(ПустоеЗначение(МетаРеквизит.Вид) = 1,"",".") + МетаРеквизит.Вид;
				ВекторПоляЗапроса.Тип	     = МетаРеквизит.Тип;
				ВекторПоляЗапроса.Вид	     = МетаРеквизит.Вид;
				ВекторПоляЗапроса.Длина	   = МетаРеквизит.Длина;
				ВекторПоляЗапроса.Точность	= МетаРеквизит.Точность;
			КонецЕсли;
 



А в классе ЭлементОтбора.ert

чуток изменил метод ПолучитьТекстЗапроса().

После ВрегТип = Врег(ОписаниеТипов.Тип); вставил:

Код
Выбрать все
	Если ВрегТип = "СТРОКА" Тогда
		Если ТипЗначенияСтр(ЗначениеСравнения)="Число" Тогда //Приводим число в вид, корректный для сравнения со строкок (в частности для Периодических значений, т.к. они являются строками, не смотря на тип реквизита)
			//См. ПолеНастройки.ert СформироватьПолеЗапроса(), там идет типизация
			ДлЧисла			=ОписаниеТипов.Длина;
			ТочностьЧисла	=ОписаниеТипов.Точность;
			ЗначениеСравнения=""+ЗначениеСравнения;
			СтрПробелов="								 ";
			СтрПробелов  =Лев(СтрПробелов,ДлЧисла-1-ТочностьЧисла);
			ДлЦелойЧасти =СтрДлина(""+Цел(ЗначениеСравнения));
			СтрПробелов  =Лев(СтрПробелов,СтрДлина(СтрПробелов)-ДлЦелойЧасти);
			СтрПробелов  =СтрЗаменить(СтрПробелов," ","_Пр_");
			ЗначениеСравнения=СтрПробелов+ЗначениеСравнения;
			ВрегВидСравнения="СОДЕРЖИТ";
		КонецЕсли;
	КонецЕсли;
 



и далее:

Код
Выбрать все
	ИначеЕсли (ВрегВидСравнения = "СОДЕРЖИТ") ИЛИ (ВрегВидСравнения = "НЕСОДЕРЖИТ") Тогда
		СтрокаУсловия = ?(ВрегВидСравнения = "СОДЕРЖИТ","like","not like");
		ЗначениеСравнения = СокрЛП(ЗначениеСравнения);
		ЗначениеСравнения = СтрЗаменить(ЗначениеСравнения,"_Пр_"," ");
 

« Последняя редакция: 11. Июня 2015 :: 15:13 - alyuev »  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1157 - 27. Октября 2015 :: 16:34
Печать  
А ткните носом кто-нибудь, как в ПоставщикДанных.ИндексированнаяТаблица с заполнением из ПрямойЗапрос вывести подвал с итогами по колонкам?
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1158 - 11. Ноября 2015 :: 04:58
Печать  
Дано:
Винда7, 64-разрядная. 1с 7.7.27 секрелиз, ПоставщикДанных-  версия из темы с обновлениями.

пытаюсь создать объект ("ППоставщикДанных.справочник"), но в данном контексте не важно - была  ругань на отсутсвие MSCOMCTL.OCX.
Слил с сайта майкрософта, поставил.
все равно идет ошибка
ПоставщикДанных.ТипЗначений = "Справочник.ГрафикПлатежей";
{Обработка.ФормаГрафикПлатежей.Форма.Модуль(170)}: ПоставщикДанных::ПриЗаписи_ТипЗначений(Строка Параметр=Справочник.ГрафикПлатежей) : иотекаКартинок Параметр=) : ПоставщикДанных.БиблиотекаКартинок::ПолучитьОбъектListImage(Картинка Пиктограммы=, Число Ширина=16, Число Высота=16, Число Количество=26) : Неудачная попытка создания объекта
ОбъектImageListCtrl = СоздатьОбъект("MSComctlLib.ImageListCtrl");
{C:\bases\1c\ПоставщикДанных\ПоставщикДанных.БиблиотекаКартинок.ert(41) }

КоманднаяПанель.КартинкиПанелиУправления = БиблиотекаКартинок.ОбъектListImage;
{C:\bases\1c\ПоставщикДанных\ПоставщикДанных.ТабличноеПоле.ert(367) }

ПоставщикДанных.БиблиотекаКартинок = БиблиотекаКартинок;
{C:\bases\1c\ПоставщикДанных\ПоставщикДанных.ert(163) }
------------------
вопрос: что я не доделал до конца?
---
(классы обновлены до последних, на этой машине (и вообще в этой конторе) ПД не применялся...)
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1159 - 18. Ноября 2015 :: 13:26
Печать  
Зарегить надо comdlg32.ocx
  
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1160 - 19. Ноября 2015 :: 06:27
Печать  
Eprst писал(а) 18. Ноября 2015 :: 13:26:
Зарегить надо comdlg32.ocx

такового в системе вообще нет. есть comdlg32.dll,  но при попытке регистрации регсервер говорит, что модуль загружен, но точка входа dllRegister не найдена...
на сайте мелкомягких ocx не нашел. Говорят, типа "раз у вас 64-разрядная система, значит вам не повезло"
В каком он пакете может быть? в VisualBasic6-KB896559 нету,  а вроде больше обновлений для общих элементов управления не было...
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1161 - 19. Ноября 2015 :: 12:19
Печать  
А регистрил так ?
%WinDir%\SysWOW64\regsvr32.exe comdlg32.dll ?


ЗЫ:regsvr32 должен быть из SysWOW64
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1162 - 19. Ноября 2015 :: 12:21
Печать  
Это, у тя тоже не работает, так ?
  

_____________________011.ert ( 96 KB | Загрузки )
Наверх
 
IP записан
 
Mikeware
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 262
Зарегистрирован: 27. Июля 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1163 - 19. Ноября 2015 :: 12:51
Печать  
Eprst писал(а) 19. Ноября 2015 :: 12:19:
А регистрил так ?
%WinDir%\SysWOW64\regsvr32.exe comdlg32.dll ?
ЗЫ:regsvr32 должен быть из SysWOW64

попробовал - монопенисуально... тот же ответ. "модуль загружен, но точка входа..."
Обрабботка говорит "нет в системе файла comdlg32.ocx"
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1164 - 19. Ноября 2015 :: 13:10
Печать  
Тут внутри должно быть: https://www.microsoft.com/en-us/download/details.aspx?id=7030
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1165 - 19. Ноября 2015 :: 15:16
Печать  
Я регистрирую MSCOMCTL.OCX в каталоге c:\Windows\SysWOW64\ через regsvr32.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
DJRelax
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 3
Местоположение: Москва
Зарегистрирован: 26. Января 2017
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1166 - 05. Марта 2017 :: 20:12
Печать  
Простите за нубский вопрос, пока только осваиваю данный класс.
Но как/где можно получить список выделенных строк(при ТП.РежимВыделения = 1) на ТП с типом "ПоставщикДанных.Документы". Уже все облазил, но с таким отладчиком как в 77 это тяжело сделать.

И еще может где есть более полный список методов и параметров к этому паку классов, а то ведь не все в доках есть, вот например "РежимВыделения" в отладчике нашел, а  в доках нет?
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1167 - 05. Марта 2017 :: 20:59
Печать  
Код (Javascript)
Выбрать все
ВыдСтроки=ПоставщикДанных.Данные.ВыделенныеСтроки;
КолВо=ВыдСтроки.Количество();
Для нн=0 По КолВо-1 Цикл
	ТекЭл=ВыдСтроки.Получить(нн); //Сразу возвращает элемент справочника
КонецЦикла; 


  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1168 - 05. Марта 2017 :: 20:59
Печать  
DJRelax писал(а) 05. Марта 2017 :: 20:12:
И еще может где есть более полный список методов и параметров к этому паку классов, а то ведь не все в доках есть, вот например "РежимВыделения" в отладчике нашел, а  в доках нет?

ПоставщикДанных является классом-наследником от объекта 1с++ ТабличноеПоле, некоторые объекты/свойства переопределены/расширены, некоторых не было при создании класса или не было необходимости в их изменении и поэтому их нет в документации к ПоставщикуДанных.
То что чего нет в документации по ПоставщикуДанных искать тут: http://www.1cpp.ru/docum/icpp/html/TableField.html

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


1C++ rocks!

Сообщений: 3
Местоположение: Москва
Зарегистрирован: 26. Января 2017
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1169 - 05. Марта 2017 :: 21:41
Печать  
Огромное СПАСИБО
Прям таки выручили!
Простите просто про ООП забылся, с непривычки это все в семерке для меня, давно уже в ней не работал.
  
Наверх
 
IP записан
 
DJRelax
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 3
Местоположение: Москва
Зарегистрирован: 26. Января 2017
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1170 - 07. Марта 2017 :: 13:30
Печать  
Камрады, простите меня, но есть еще вопросик или проблема:
Пробую разместить "ПоставщикДанных.ТабличнаяЧасть", ставлю на форму две кнопки, основную ТЧ перемещаю на другой слой. В коде в процедуре "ПослеОткрытия" пишу:
Код (C++)
Выбрать все
	ПД = СоздатьОбъект("ПоставщикДанных");
	ПД.ТипЗначений = "ТабличнаяЧасть.тестСводнаяЗаявкаПрих";
	ПД.КонтейнерКоманднойПанели = "ПанельТЧ";
	ПД.КонтейнерТабличногоПоля = "ТЧДокумента";

	Данные = ПД.Данные;
	Данные.СоздатьКнопкиПоУмолчанию();

	ПД.Обновить(); 



При открытии документа, таблица появляется, а вот панель нет, т.е. класс пытается создать панель видимо, но она пустая, без кнопок.
Видимо из-за этого 1С падает, даже при попытке просто закрыть этот документ.
У меня ИБ DBF-ная, релиз 27
ВК вот эти(в порядке загрузки):
1) 1С++ 3.2.4.3
2) 1sqlite.dll - 1.0.2.6/3.16.2.14 (пробовал и другие версии)
3) FormEx.dll - 2.0.5.121
4) SpreadSheet.dll - 1.1.2.0

Винда, 10х64, но и это ни причем, пробовал на WinServer 2003х64, то же самое.
Что самое интересное, сделал форму подбора документов на поставщике данных, она работает нормально. а вот ТабличнаяЧасть не хочет.
Пытался что нить найти отладчиком, ни чего не находится Улыбка
Грешу что может я что нить не включил в ПД.
  
Наверх
 
IP записан
 
JB
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 24. Февраля 2015
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1171 - 21. Марта 2017 :: 14:56
Печать  
Подскажите, пожалуйста. Использую ПД для журнала документов.

При создании используется процедура:

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

	ТабличноеПоле = ПоставщикДанных.ТабличноеПоле;
	ТабличноеПоле.СтильРамки = 1;
	ТабличноеПоле.СтильЗаголовков = 1;

	Данные = ПоставщикДанных.Данные;
	Данные.СоздатьКнопкиПоУмолчанию();
	Данные.РеквизитСортировки = "ДатаДокумента";
	Данные.КолонкаПиктограмм = "НомерДокумента";
	Данные.РежимВыбора = 0;
	Данные.РежимОтладки = -1;
	Данные.АвтоОбновление = 1;
	Данные.ПериодАвтоОбновления = 10;

	Данные.РазрешитьОтборПоГрафам = 1;
...
 


Она практически содрана из примера, который vandalsvq приводил вместе с лохматой (3 или 4) версией класса. На последней (5-й) версии ПД вылетает на строке
Данные.РазрешитьОтборПоГрафам = 1;
с ошибкой:
Код
Выбрать все
Если ЭлементОтбора.ПолеНастройки.ГрафаЖурнала = 1 Тогда
рнал.ert(1217) }

Данные.РазрешитьОтборПоГрафам = 1;
{U:\BASES\1C\DATA\EXTFORMS\ТЕСТ ЖУРНАЛНАРЯДЫ.ERT(29)}: ПоставщикДанных.Журнал::ПриЗаписи_РазрешитьОтборПоГрафам(Число Параметр=1) : Значение не представляет агрегатный объект
Если ЭлементОтбора.ПолеНастройки.ГрафаЖурнала = 1 Тогда
рнал.ert(1217) } 



Если использовать старую версию ПД, то все нормально работает. Но старую версию ПД использовать не могу, т.к. у меня в других модулях активно используется новая. Как причесать этот код, чтобы ошибка не вылетала ?
  
Наверх
 
IP записан
 
BotMan
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 19
Зарегистрирован: 28. Июля 2017
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1172 - 28. Июля 2017 :: 12:19
Печать  
Подскажите пожалуйста, создал журнал с табличным полем, все отлично работает, а вот как устанавливать свои фильтры не могу понять.
Допустим: на форме есть реквизит "Клиент", как программно отобразить только строки с клиентов выбранным в этом реквизите ? Очень довольный
  
Наверх
 
IP записан
 
Mink Snopes
Junior Member
**
Отсутствует


bookkeeping considered
harmful

Сообщений: 30
Местоположение: Dombabwe
Зарегистрирован: 05. Ноября 2013
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1173 - 28. Июля 2017 :: 13:01
Печать  
BotMan писал(а) 28. Июля 2017 :: 12:19:
Подскажите пожалуйста, создал журнал с табличным полем, все отлично работает, а вот как устанавливать свои фильтры не могу понять.
Допустим: на форме есть реквизит "Клиент", как программно отобразить только строки с клиентов выбранным в этом реквизите ? Очень довольный


Я использую примерно такую процедуру:
Код
Выбрать все
Процедура ОбновитьОтбор(Имя, Знч, ОбновлятьПД = 0)
	Перем Отбор, ВидыСравнения;
	Данные = ПоставщикДанных.Данные;
	Отбор = ПоставщикДанных.Данные.Отбор;

	ВидыСравнения=СоздатьОбъект("ПоставщикДанных.ВидыСравнения");

	НовОтбор = Данные.Отбор.НайтиОтбор(Имя);
	НовОтбор.ВидСравнения = ВидыСравнения.Равно;
	НовОтбор.Значение = Знч;
	НовОтбор.Использование = 1 - ПустоеЗначение(Знч);

	Если ОбновлятьПД = 1 Тогда
		ПоставщикДанных.Обновить();
	КонецЕсли;
КонецПроцедуры 



В твоем случае вызывать как-то так:
Код
Выбрать все
ОбновитьОтбор("Клиент", ВыбКлиент); 


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


1C++ rocks!

Сообщений: 19
Зарегистрирован: 28. Июля 2017
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1174 - 28. Июля 2017 :: 13:13
Печать  
Спасибо, сработало, но только с небольшой поправкой на ветер:

Mink Snopes писал(а) 28. Июля 2017 :: 13:01:
Код
Выбрать все
	ВидыСравнения=СоздатьОбъект("ВидыСравнения");
 




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


1C++ rocks!

Сообщений: 19
Зарегистрирован: 28. Июля 2017
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1175 - 29. Июля 2017 :: 10:47
Печать  
Слушай, а как отменить отбор теперь ? )))

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


Пробую вот так
Код
Выбрать все
Процедура ОтменитьОтбор(Имя)
	ПоставщикДанных.Данные.Отбор.Удалить(Имя);
	ПоставщикДанных.Обновить();
КонецПроцедуры
 

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


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1176 - 31. Июля 2017 :: 09:40
Печать  
Пиши:

Код
Выбрать все
НовОтбор.Использование = 0; 

  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
BotMan
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 19
Зарегистрирован: 28. Июля 2017
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1177 - 31. Июля 2017 :: 10:34
Печать  
Да, уже разобрался, спасибо.
  
Наверх
 
IP записан
 
BotMan
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 19
Зарегистрирован: 28. Июля 2017
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1178 - 12. Сентября 2017 :: 09:15
Печать  
Подскажите в чем может быть косяк. На win 10x64 при закрытии 1с что-то идет не так и при повторном запуске программа просит переиндексацию?
В конфе гружу полный пакет поставщика данных, использую прямойзапрос и журналы.
Переносил конфу на win 7 32 (потестить) ошибок не наблюдал!
  
Наверх
 
IP записан
 
nicesc
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Зарегистрирован: 13. Июня 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1179 - 13. Сентября 2017 :: 01:45
Печать  
В win10 класс падает в недрах перехватчика, времени не пока было разобраться, поэтому я просто перевёл на табличное поле.
  
Наверх
 
IP записан
 
BotMan
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 19
Зарегистрирован: 28. Июля 2017
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1180 - 16. Сентября 2017 :: 11:01
Печать  
После нескольких дней наблюдения, сделал вывод что рушится что-то именно если закрывать всю программу, если закрыть сперва окно, в котором развернут ПоставщикДанных.Журнал, то отрабатывает все норм. возможно не успевает отработать какой-то Деструктор().

На данный момент проблему обошел вот таким костылем:

Процедура ПриЗавершенииРаботыСистемы()
     Если Вопрос("Завершить работу программы?",4) = 7 Тогда
           СтатусВозврата(0);
           Возврат;
     КонецЕсли;
//     Сервис - Это формекс
     Сервис.ЗакрытьВсеОкна(100);
КонецПроцедуры

Буду наблюдать за происходящим )
  
Наверх
 
IP записан
 
BotMan
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 19
Зарегистрирован: 28. Июля 2017
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1181 - 21. Сентября 2017 :: 06:45
Печать  
Собственно после добавления закрытия всех форм ПриЗавершенииРаботы и установки "Запускать программу в режиме совместимости windows 7" 1с-ка перестала рушиться.
  
Наверх
 
IP записан
 
BotMan
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 19
Зарегистрирован: 28. Июля 2017
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1182 - 09. Октября 2017 :: 07:44
Печать  
Подскажите пожалуйста, как лучше сделать.

Добавил колонку:
//****
     Данные.ДобавитьКолонкуДанных("Долг","Долг","''","Число",15,2);
     Данные.НоваяКолонка("Долг",1);
//****

Далее:
Процедура ЭкранПриВыводеСтроки(ТабличноеПоле, ОформлениеСтроки, ДанныеСтроки, ТипРегиона)
     Если ТипРегиона = 3 Тогда
           ТекДок = ДанныеСтроки.Получить("ТекущийДокумент");
           ОформлениеЯчейки = ОформлениеСтроки.Ячейки.Получить("Долг");
           ОформлениеЯчейки.УстановитьТекст(Регистр.ДолгОтгрузки.Остаток(ТекДок, "Долг"));
        КонецЕсли
КонецПроцедуры;


Подскажите пож, как правильно запихать Сумму этих долгов в подвал ?

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


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1183 - 30. Октября 2017 :: 16:01
Печать  
Интересно было бы узнать мнение на счет возможности отбора элементов справочника по второстепенным данным.

Например, нужно отобразить клиентов, с которыми текущий сотрудник заключил договор. Т.е. в документе "Договор" есть поле "Сотрудник" и вот в спр.Клиентов нужно отборазить всех клиентов, у которых в договоре Сотрудник=ТекущийПользователь. Как это можно сделать с помощью класса ПоставщикДанных?

И помимо этого задача еще осложняется тем, что нужно показывать также клиентов, в карточке которых этот текущий пользователь установлен как Менеджер. Этот фильтр легко устанавливается с помощью Отбора. А вот как добавить к нему "ИЛИ" из первого условия по договорам?

В обычном варианте справочника выполнялся лайтовский запрос, на выходе которого получали список клиентов. И этот список подставлялся в ИспользоватьСписокЭлементов().
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
nicesc
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Зарегистрирован: 13. Июня 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1184 - 31. Октября 2017 :: 02:17
Печать  
Что мешает получить список нужных элементов через запрос и потом его скормить через тот же `отбор`?
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1185 - 31. Октября 2017 :: 08:20
Печать  
Получить-то получу. А как "скормить"?
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
nicesc
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Зарегистрирован: 13. Июня 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1186 - 01. Ноября 2017 :: 05:07
Печать  
Ну наверное как то так:

Отбор = ПоставщикДанных.ТабличноеПоле.Отбор;
ОтборДок = Отбор.ТекущийДокумент;
ОтборДок.Использование = 1;
ОтборДок.ВидСравнения = "ВСписке";
ОтборДок.Значение = списокДокументов;
ПоставщикДанных.Обновить();
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 850
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1187 - 01. Ноября 2017 :: 08:32
Печать  
Идею понял. Спасибо!
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
PitKZL
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 10
Зарегистрирован: 12. Февраля 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1188 - 02. Ноября 2017 :: 12:14
Печать  
Помогите оптимизироать запрос .

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

     ТекстСоединения = "left join
     |      $РегистрОстатки.ПотенциальныеПродажиФакт(,(???????????),(ЗаказПокупателя),(СуммаОплаты,СуммаОтгрузки),(???????????)) as РегОст
     |            on  $ТекущийОбъект.ТекущийДокумент =  РегОст.ЗаказПокупателя
     |";
     Данные.ДобавитьСоединениеДанных("Оплачено",ТекстСоединения);
     ток,0)","Число",15,2,1);
     Данные.НоваяКолонка("Оплачено");
     иОстаток,0)","Число",15,2,1);
     Данные.НоваяКолонка("Отгружено");


Как связать $ТекущийОбъект.ТекущийДокумент и ЗаказПокупателя непосредственно в соединении?


Текст запроса отладки :

select top 20
journ.date_time_iddoc as ПозицияДокумента,
journ.iddoc as ТекущийДокумент,
case when journ.ismark = 1 then 7 else
           case when journ.closed&1 = 1 then 8 else 6 end
     end as Пиктограмма,
ltrim(journ.docno) as НомерДокумента,
left(journ.date_time_iddoc,8) as ДатаДокумента,
journ.closed&1 as Проведен,
case when journ.ismark = 1 then 1 else 0 end as ПометкаУдаления,
journ.dnprefix as ПрефиксНомера,
journ.row_id as НомерСтроки
ЖурналаДокументов,
journ.iddocdef as ВидДокументаСортировка,
journ.docno as НомерДокументаСортировка,
dbo.ConvertTime(substring(journ.date_time_iddoc,9,6)) as ВремяДокумента,
ISNULL(РегОст.СуммаОплатыОстаток,0) as Оплачено,
ISNULL(РегОст.СуммаОтгрузкиОстаток,0) as Отгружено
from _1SJOURN as journ (nolock)
     inner join DH981 as dh981 (n
olock)
     on journ.iddoc = dh981.iddoc and journ.IDDOCDEF = 981      
left join
     (
     SELECT
           ЗаказПокупателя
           ,SUM(СуммаОплатыОстаток) AS СуммаОплатыОстаток
           ,SUM(СуммаОтгрузкиОстаток) AS СуммаОтгрузкиОстаток
           
     FROM
           (SELECT
                 rg_23275.sp23276 AS ЗаказПокупателя
                 ,rg_23275.sp23274 AS СуммаОплатыОстаток
                 ,rg_23275.sp24132 AS СуммаОтгрузкиОстаток
                 
           FROM
                 RG23275 AS rg_23275 (nolock)
           WHERE
                 rg_23275.PERIOD = '20171201
'
           ) AS vt_ra_23275
     GROUP BY
           ЗаказПокупателя
     HAVING (SUM(СуммаОплатыОстаток) <> 0)
     OR (SUM(СуммаОтгрузкиОстаток) <> 0)
     
) as РегОст
           on  journ.IDDOC =  РегОст.ЗаказПокупателя
where (((left(journ.date_time_iddoc,8) between '20171001'
     and '20171102Z')))
order by journ.date_time_iddoc



« Последняя редакция: 02. Ноября 2017 :: 13:39 - PitKZL »  
Наверх
 
IP записан
 
nicesc
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Зарегистрирован: 13. Июня 2009
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1189 - 03. Ноября 2017 :: 15:43
Печать  
Код
Выбрать все
|$ РегистрОстатки. ПотенциальныеПродажиФакт (,
 (ЗаказПокупателя = $ ТекущийОбъект. ТекущийДокумент), (ЗаказПокупателя),(СуммаОплаты,СуммаОтгрузки),(???????????)) as 

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


1C++ rocks!

Сообщений: 10
Зарегистрирован: 12. Февраля 2010
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1190 - 06. Ноября 2017 :: 06:48
Печать  
Спасибо, но не помогло - выдает ошибку:
State 42000, native 4104, message [Microsoft] [ODBC SQL Server Driver][SQL Server] The multi-part identifier "journ.IDDOC" could not be bound.
  
Наверх
 
IP записан
 
Volodja
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 19. Июля 2019
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1191 - 12. Марта 2020 :: 05:24
Печать  
Подскажите, пожалуйста, как достучаться до настроек отбора?
Например как в 8-ке:
Форма.ЭлементыФормы[ИмяРеквизитаСписка].НастройкаОтбора[Филиал].Доступность = Ложь;

Мне нужно сделать так, чтобы в настройках отбора пользователь не мог сменить филиал.
В 8-ке это делается через ЭлементыФормы.
Как это сделать в поставщикеДанных? Возможно это?
Спасибо.
  
Наверх
 
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1192 - 05. Декабря 2021 :: 14:24
Печать  
Кто еще использует ПоставщикДанных.Журнал на 1sqlite попробуйте подменить этот код (+-Djelf там есть).
Вопрос и решение образовалось тут: https://forum.mista.ru/topic.php?id=874367&page=1

Код (C++)
Выбрать все
Функция ПолучитьТекстИсточникаСбора(ЭтоПоиск = 0,ТекстСоединения = "")
	ТекстИсточника = "";

	// текст запроса основного источника данных
	ТекстИсточника = ТекстИсточника + "
	|from ЖурналДокументов as ТекущийОбъект $nolock
	|";

	СоединениеСДокументами = ПроверитьНеобходимостьСоединенияСДокументами(ЭтоПоиск);

	// Добавляем таблицы документов если есть есть такая необходимость
	Если СоединениеСДокументами = 1 Тогда
		Для НомерВида = 0 По ВидыДокументов.Количество()-1 Цикл
			ВидДокумента = ВидыДокументов.Получить(НомерВида);
			ИДОбъекта = МетаДата.ИДДокумента(ВидДокумента);
			ИДОбъекта = ?(ЭтоSQL = 1,ИДОбъекта,"'"+Прав(_IdToStr(ИДОбъекта),4)+"'");
			ТекстИсточника = ТекстИсточника + "	left join Документ." + ВидДокумента + " as Док" + ВидДокумента + " $nolock
			|		on ТекущийОбъект.iddoc = Док"+ВидДокумента+".iddoc
			|";
		КонецЦикла;
	КонецЕсли;

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

	// Добавим соединения быстрого поиска
	Если ПустоеЗначение(ТекстСоединения) = 0 Тогда
		ТекстИсточника = ТекстИсточника + "	" + ТекстСоединения + "
		|";
	КонецЕсли;

	// Добавим соединения для отбора данных
	СтрокаСоединенияОтборов = Сервис.ПолучитьСтрокуСоединений(СвойствоОтбор);
	Если ПустоеЗначение(СтрокаСоединенияОтборов) = 0 Тогда
		СтрокаСоединенияОтборов = СтрЗаменить(СтрокаСоединенияОтборов,"[ОсновнаяТаблица]","ШапкаДокумента");
		СтрокаСоединенияОтборов = СтрЗаменить(СтрокаСоединенияОтборов,"[ТаблицаЖурнала]","ТекущийОбъект");
		ТекстИсточника = ТекстИсточника + СтрокаСоединенияОтборов + "
		|";
	КонецЕсли;

	КлючевоеСлово = "where";

	// добавляем фильтры по отбору данных
	ТекстОтбора = СформироватьТекстОтбора();
	Если ПустаяСтрока(ТекстОтбора) = 0 Тогда
		ТекстИсточника	= ТекстИсточника + РазделительСтрок + КлючевоеСлово + РазделительСтрок + "	" + ТекстОтбора;
		КлючевоеСлово	= "and";
	КонецЕсли;

	// добавляем фильтр по виду документов
	КоличествоДокументов = ВидыДокументов.Количество();
	Если КоличествоДокументов > 0 Тогда
		ТекстИсточника = ТекстИсточника + "
		//{ -Djelf
		//|"+КлючевоеСлово+" ( ТекущийОбъект.iddocdef ";
		//} -Djelf
		//{ +Djelf
		|"+КлючевоеСлово+" ("+?(КоличествоДокументов>1,"+","")+"ТекущийОбъект.iddocdef ";
		//} +Djelf
			КлючевоеСлово = "and";
	КонецЕсли;

	СтрокаВидыДокументов = "";
	ЗнакСравнения = "";
	Для НомерВида = 0 По КоличествоДокументов-1 Цикл
		ВидДокумента = ВидыДокументов.Получить(НомерВида);
		ИДОбъекта = МетаДата.ИДДокумента(ВидДокумента);
		ИДОбъекта = ?(ЭтоSQL = 1,ИДОбъекта,"'"+Прав(_IdToStr(ИДОбъекта),4)+"'");

		СтрокаВидыДокументов = СтрокаВидыДокументов + ?(НомерВида = 0,"",",") + ИДОбъекта;
	КонецЦикла;

	ТекстИсточника = ТекстИсточника + ?(КоличествоДокументов = 1,"= ","in (") + СтрокаВидыДокументов + ?(КоличествоДокументов = 1,"",")") + ")";

	//{ +Djelf
	Если ЭтоSQL = 0 Тогда
		ТекстИсточника = ТекстИсточника + "and ТекущийОбъект.idjournal = :ЖурналДокументов."+ВидЖурнала;
	КонецЕсли;
	//} +Djelf

	Возврат ТекстИсточника;
КонецФункции
 

  
Наверх
www  
IP записан
 
michael-iv
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 15. Февраля 2022
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1193 - 15. Февраля 2022 :: 21:51
Печать  
Всем Привет.
Ребята, может подскажите - есть ли примеры запросов к "ЖурналРасчетов.Зарплата" ?
Тк.у меня при простом запросе выдает ошибку...
Подскажите плз. что я делаю не так...

Простой запрос:
// подготовим запрос...
ЗапросЗП = СоздатьОбъект("ПрямойЗапрос");
......
ТекстЗапроса = "SELECT
| Объект      AS [Объект]
| FROM :ВидЖурналаРасчетов.Зарплата
|";
-------------------------------------------
Выдает ошибку:
SELECT      Объект AS      [Объект]  FROM '  X8'
(1С++) Ошибка выполнения общего запроса (ПрямойЗапрос). Ошибка:ПрямойЗапрос::Выполнить(Строка ТипОбъекта=ИндексированнаяТаблица, Строка ТекстВыполнения=, Число БезПодготовки=0) : no such table:   X8
ЗапросSQLite.ВыполнитьЗапрос(ТекстЗапроса,ПолучательЗапроса);
  
Наверх
 
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1194 - 14. Октября 2022 :: 13:43
Печать  
Доброго дня всем, кто еще остался на 7.7, а так же знатокам 1с++ и прекрасного класса "ПоставщикДанных" :)
Столкнулась со странным поведением класса ПоставщикДанных.Справочник во время поиска при установленных отборах: Если на ПоставщикДанных наложить несколько условий отбора (больше 2-х) - то во время поиска, неважно посимвольного по колонке, или по целому слову, происходит сбой в табличном поле и на месте найденного появляется последний элемент в списке справочника. Более того ломается весь список в табличном поле - элементы разбегаются в хаотичном порядке, последний элемент, который "встает" на место найденного по поиску дублируется множество раз . Порядок элементов восстанавливается, если сделать End - Home и все элементы возвращаются на свои места и даже тот элемент который надо найти, перелистыванием находится на своём месте. Слом происходит именно во время поиска.

При чём, слом происходит только если искомый элемент не попадает в "окно" табличного поля, отображаемое на форме. Если элемент "виден" в списке - то поиск его проходит нормально.

Отладка показала, что поиск то работает, и элемент справочника находится, но в момент позиционирования на него
[code]ТабличноеПоле.ТекущаяСтрока = ЗначенияВыборки.ПолучитьЗначение(1,1);[/code]
в табличном поле позиция найденного элемента заменяется последним элементом справочника!

Такое ощущение что ломаются какие то внутренние индексы класса связанные с источником данных?

1сpp 3.2.4.1
1sqlite 1.0.2.6/3.36.0.26 by Djelf
ПоставщикДанных 5.0.5 23.05.2014
ПрямыеЗапросы 1.8.6 22.05.2013

Может кто-то уже сталкивался и знает как исправить?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1195 - 17. Октября 2022 :: 07:54
Печать  
ТП ведет себя подобным образом когда не обеспечена уникальность ключа порядка. Копайте в эту сторону
  

1&&2&&3
Наверх
 
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1196 - 17. Октября 2022 :: 10:25
Печать  
trad писал(а) 17. Октября 2022 :: 07:54:
ТП ведет себя подобным образом когда не обеспечена уникальность ключа порядка. Копайте в эту сторону

Хм, начала копать.
Поскольку поиск делаю по наименованию - ключом порядка выступает ТекущийОбъект.idx_DESCR
Включила отладку, увидела что при включённых отборах по полям для которых в бд включён отбор по реквизиту - при поиске выбирается индекс с этим реквизитом... - и поиск ломается
Если в отборе поставщика не используются поля с включёнными отборами - используется индекс по наименованию, как и в ключе порядка - и поиск работает как надо.

Ушла думать
  
Наверх
 
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1197 - 17. Октября 2022 :: 10:56
Печать  
Zhenya писал(а) 17. Октября 2022 :: 10:25:
trad писал(а) 17. Октября 2022 :: 07:54:
ТП ведет себя подобным образом когда не обеспечена уникальность ключа порядка. Копайте в эту сторону

Хм, начала копать.
Поскольку поиск делаю по наименованию - ключом порядка выступает ТекущийОбъект.idx_DESCR
Включила отладку, увидела что при включённых отборах по полям для которых в бд включён отбор по реквизиту - при поиске выбирается индекс с этим реквизитом... - и поиск ломается
Если в отборе поставщика не используются поля с включёнными отборами - используется индекс по наименованию, как и в ключе порядка - и поиск работает как надо.

Ушла думать

Итак да, отключение признака отбор у реквизитов справочника, которые я использую в отборе поставщика данных, проблему решило.
Интересно, а можно как то влиять на выбор индексов в ПрямомЗапросе, которым пользуется ПоставщикДанных?
  
Наверх
 
IP записан
 
Zhenya
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 37
Зарегистрирован: 18. Октября 2010
Пол: Женский
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1198 - 19. Октября 2022 :: 09:36
Печать  
Zhenya писал(а) 14. Октября 2022 :: 13:43:
1sqlite 1.0.2.6/3.36.0.26 by Djelf

В общем плюнула я на навороты последней версии 1sqlite by Djelf и восстановила старенькую ещё орефковскую версию 1.0.2.6 от 03.02.2012.
И всё заработало так как и задумывалось автором класса
  
Наверх
 
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 633
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1199 - 19. Октября 2022 :: 12:17
Печать  
Zhenya писал(а) 19. Октября 2022 :: 09:36:
Zhenya писал(а) 14. Октября 2022 :: 13:43:
1sqlite 1.0.2.6/3.36.0.26 by Djelf

В общем плюнула я на навороты последней версии 1sqlite by Djelf и восстановила старенькую ещё орефковскую версию 1.0.2.6 от 03.02.2012.
И всё заработало так как и задумывалось автором класса


Навороты делал не я, их предоставляет библиотека sqlite.

Я выше писал в https://www.1cpp.ru/forum/YaBB.pl?num=1285520767/1192#1192 что надо переделать для документов, для справочников видимо нужно аналогично.
Причина в том что в библиотеке sqlite в сборке от Орефкова индекс по IN вообще не мог использоваться, предположение об его использовании не поступало в расширение виртуальных таблиц 1sqlite для 1с.
Однако, использование индекса по IN приводит к замедлению работы табличного поля из-за того что запрос вынужден выбирать сначала все данные (кусками по индексу в порядке их следования в IN), сортировать полученный результат, и limit/offset работали уже после всей выборки, а не до нее что было бы без индекса по IN, но это никак не должно приводить к таким странным результатам.
Отключить использование индекса просто, нужно перед полем с индексом поставить "+".

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

З.Ы. Скинули добрые люди мне тему https://forum.infostart.ru/forum9/topic288630/ , IN там не используется, индекс там используется правильный, т.е. объяснения нет, да и не воспроизводится на моей базе. Чудесатые чудеса.
Разве что проверить это, результат должен быть пустой
Код (SQL)
Выбрать все
SELECT Контрагенты.idx_DESCR ,count(*)
FROM Справочник_Контрагенты AS Контрагенты
GROUP BY Контрагенты.idx_DESCR
HAVING count(*)>1 

« Последняя редакция: 20. Октября 2022 :: 11:14 - Djelf »  
Наверх
www  
IP записан
 
artamir
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 58
Зарегистрирован: 03. Мая 2011
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1200 - 09. Апреля 2024 :: 06:15
Печать  
Всем доброго. Как можно для ПоставщикДанных.ИндексированнаяТаблица реализовать  ПриНачалеРедактированияСтроки, чтоб была возможность устанавливать значения по умолчанию
  
Наверх
 
IP записан
 
Arbuz
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 58
Зарегистрирован: 06. Февраля 2019
Re: Класс "ПоставщикДанных" - обсуждения. Часть 2.
Ответ #1201 - 10. Апреля 2024 :: 12:02
Печать  
Причём тут ПоставщикДанных? Имеется в виду ТабличноеПоле? Тогда есть событие ПриРедактированииЗначения.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать