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