Переключение на Главную Страницу Страницы: 1 ... 6 7 [8] 9 10 ... 81 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПоставщикДанных" - обсуждения. Часть 2. (число прочтений - 370391 )
Kondarat
Junior Member
**
Отсутствует


I Love YaBB 2!

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

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

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

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



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

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

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

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

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


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

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

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


I Love YaBB 2!

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




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

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


1C++ rocks!

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

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

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

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

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

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

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

 



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

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

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

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

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

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

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

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

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

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

 



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

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


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


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

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

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


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

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



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

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

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

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


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

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

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

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

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

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

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



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

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

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

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

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


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

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

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

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



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



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

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



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

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


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

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



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

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


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

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

ЗЫ в 4 версии отбор вынесен в отделный класс и управлять отбором ты можешь сам
  
Наверх
wwwICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 6 7 [8] 9 10 ... 81
ОтправитьПечать