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

Сообщений: 14
Местоположение: Тирасполь
Зарегистрирован: 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

Сообщений: 635
Местоположение: Питер
Зарегистрирован: 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

Сообщений: 635
Местоположение: Питер
Зарегистрирован: 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
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 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
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 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
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 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
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 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
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 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
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 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
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 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
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 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
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 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
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 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
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 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
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 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
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 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
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 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
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 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:
при автоматическом вызове иногда не срабатывает последний вызов
  Очень довольный
Что есть "вызов Поставщика"? Код давай. Подозреваю, что валится как раз наоборот из-за несвоевременного уничтожения объекта Поставщика.