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