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