Переключение на Главную Страницу Страницы: 1 ... 37 38 [39] 40 41 ... 79 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПоставщикДанных" - обсуждения, примеры, вопросы (число прочтений - 364404 )
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #570 - 20. Апреля 2010 :: 05:40
Печать  
mctoha писал(а) 20. Апреля 2010 :: 05:26:
развернул рядом бэкап на день раньше до происшествия - все работает
таки косяк в данных, который ведет к выпаданию базы...
буду думать...

В общем проблема в уникальности ключа который у поставщика табличного поля. При разной сортировки ключ задается всегда разный. Обрати внимание на новые элементы которые добавились.
Сам ключ он повторяет 1С-овский индекс. Смотри процедуру УстановитьПоставщикаДанных в КОП ПоставщикДанных.Справочник. Копать надо где то тут...
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #571 - 20. Апреля 2010 :: 05:44
Печать  
Anatol писал(а) 20. Апреля 2010 :: 05:08:
вот собственно сама эта обработка.

Посмотрю может ближе к вечеру.
  

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


1C++ rocks!

Сообщений: 39
Зарегистрирован: 26. Марта 2010
Re: Класс "ПоставщикДанных"
Ответ #572 - 20. Апреля 2010 :: 06:45
Печать  
пришел
осознал, вставил в рабочую базу - работает!
даже успел до начала рабочего дня  Улыбка
видимо косяк произошел в данных, и неоптимальный запрос на него натыкался
поразило другое - КАК ты так четко и красиво наваял запрос????
И суть сразу понял, ну пару ньюансов я поправил - но учитывая время твоего ответа - снимаю шляпу...
Большое спасибо!!

На таких профи надо равняться  Подмигивание
  
Наверх
 
IP записан
 
mctoha
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 39
Зарегистрирован: 26. Марта 2010
Re: Класс "ПоставщикДанных"
Ответ #573 - 20. Апреля 2010 :: 06:59
Печать  
vandalsvq писал(а) 20. Апреля 2010 :: 05:40:
В общем проблема в уникальности ключа который у поставщика табличного поля. При разной сортировки ключ задается всегда разный. Обрати внимание на новые элементы которые добавились.

да, проблему обошли, но все решить ее прийдется рано или поздно
по свободе постараюсь понять, в чем же причина
бэкап глючной базы тоже отложил (несмотря на ее 4 гектара  Ужас) )
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #574 - 20. Апреля 2010 :: 08:02
Печать  
mctoha писал(а) 20. Апреля 2010 :: 06:45:
поразило другое - КАК ты так четко и красиво наваял запрос????
И суть сразу понял, ну пару ньюансов я поправил


Может звезды сошлись? настроение может хорошее... кто его знает...
А пара нюансов... точно, там же у тебя Резерв вычитается из остатка, а еще группировку по самому последнему вложенному запросу забыл поставить, и суммирование соответственно. Сча подправлю...

Рад что смог помочь.  Подмигивание
  

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


I Love YaBB 2!

Сообщений: 150
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #575 - 20. Апреля 2010 :: 14:41
Печать  
Подскажите как получить время документа?


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

ДанныеСпр = ПоставщикДанных.Данные;


ДанныеСпр.НоваяКолонка("НомерДокумента");

ДанныеСпр.НоваяКолонка("ДатаДокумента");
ДанныеСпр.НоваяКолонка("Фирма");
ДанныеСпр.НоваяКолонка("ВремяДокумента"); << ТУТ ОШИБКА!
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #576 - 20. Апреля 2010 :: 17:45
Печать  
Страничку-две назад просмотри
  
Наверх
 
IP записан
 
admin spb
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 150
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #577 - 22. Апреля 2010 :: 11:28
Печать  
Help! Помогите сделать быстрый поиск по контрагенту.
Ошибка: Для поиска по данному реквизиту нажмите кнопку Ctrl+F.


Создал журнал новый.
Добавил туда документы. Тип журнала Дополнительный.
Добавил туда новую графу, назвал Контрагент. Указал в каких документах есть этот реквизит .

(В общий список реквизитов мне не добавить Контрагент. Что и так понятно, ведь в документах уже есть такой реквизит.)


А поиск например по Фирме у меня работает. Т.к он есть в общих реквизитах документа.

Не знаю что делать тперь.. но очень нужен быстрый поиск по контрагенту.. Печаль((

Может можно создать доп. колонку и когда таблица создает новые строки в поставщике - запихнуть туда имя контрагента.. может тогда будет работать поиск??
Уже 2 день не могу решить эту проблему..
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #578 - 22. Апреля 2010 :: 11:55
Печать  
Переписать на Табличное поле не предлагать?
  
Наверх
ICQ  
IP записан
 
admin spb
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 150
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #579 - 22. Апреля 2010 :: 11:57
Печать  
Медленно будет открывать все документы.. наверное...
В общем я делаю свой общий журнал документов. Использую ТП + поставщик данных.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #580 - 22. Апреля 2010 :: 12:21
Печать  
Salimbek писал(а) 22. Апреля 2010 :: 11:55:
Переписать на Табличное поле не предлагать?

Поставщик он как бы и так на табличном поле Улыбка... там проблема в другом

admin spb писал(а) 22. Апреля 2010 :: 11:57:
Медленно будет открывать все документы.. наверное...
В общем я делаю свой общий журнал документов. Использую ТП + поставщик данных.

Мы с тобой обсуждали. Силами поставщика тебе не получится счас сделать, без дописки самого поставщика. Дорабатывать его (убирать эти ограничения) у меня времени нет, и наврядли предвидится. Не понимаю чем сочетание Отбор + Поиск (Ctrl+F) не устраивает. Намного больше возможностей.
  

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


I Love YaBB 2!

Сообщений: 150
Зарегистрирован: 26. Апреля 2007
Пол: Мужской
Re: Класс "ПоставщикДанных"
Ответ #581 - 22. Апреля 2010 :: 12:57
Печать  
Цитата:
Мы с тобой обсуждали. Силами поставщика тебе не получится счас сделать, без дописки самого поставщика. Дорабатывать его (убирать эти ограничения) у меня времени нет, и наврядли предвидится. Не понимаю чем сочетание Отбор + Поиск (Ctrl+F) не устраивает. Намного больше возможностей.


Изначала была задача такая:
В общем журнале (в стандартном) добавить три закладки.
Склад 1,Склад 2,Все склады.
И показывать только нужные склады или все. - но при этом еще должен быть отбор по виду документа.

Проблема в том что 1С функция УстановитьОтбор может только по одному реквизиту. Создавать свой реквизит во всех документах и туда записывать ВидДокумента+Фирма и отбирать по этому реквизиту - не вариант.
Других способов я не знаю. Очень давно (2 года назад) пользуюсь ТП. Решил создать свой журнал с использованием поставщика данных.
Все вроде сделал, но теперь столкнулся с проблемой что не работает быстрый поиск ТОЛЬКО по контрагенту. А люди, кто работает в базе уже привыкли использовать быстрый поиск по контрагенту. 
Есть одна идея, плохая) Это создать Общий реквизит Контрагенты1
И когда поставщик данных заполняет ТП, то записывать данные в этот реквизит..  но не сохранять в базу. Может в этом случае в ТП будет работать быстрый отбор. В общем директор сказал что либо до понедельника решишь проблему с быстрым поиском.. либо вернемся к старому варианту... будем просто красить строки в другой цвет, в зависимости от склада... что не очень то хочется.

Одна надежа на этот форум.
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


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

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Класс "ПоставщикДанных"
Ответ #582 - 22. Апреля 2010 :: 14:02
Печать  
может тебе такой вариант подойдет

если ПриБыстромПоиске модифицировать запроос добавив дополнительную таблицу

Код
Выбрать все
inner join $Справочник.Контрагенты AS БыстрыйПоиск (nolock) ON $журнал.Контрагент = БыстрыйПоиск.ID 



а секцию условий

Код
Выбрать все
WHERE
.......
 AND БыстрыйПоиск.descr Like '%" + ТекстПоиска + "%' "; 

« Последняя редакция: 22. Апреля 2010 :: 20:31 - Anatol »  
Наверх
wwwICQ  
IP записан
 
mctoha
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 39
Зарегистрирован: 26. Марта 2010
Re: Класс "ПоставщикДанных"
Ответ #583 - 22. Апреля 2010 :: 18:50
Печать  
Очередная проблема Печаль
пытался реализовать поиск по наименованию взамен стандартного
Код
Выбрать все
Процедура Поиск(Направление)
	Если ПустоеЗначение(ВыбНаименование)=1 Тогда
		Возврат;
	КонецЕсли;

	ТабличноеПоле = ПоставщикДанных.ТабличноеПоле;
	ДанныеСправочник = ПоставщикДанных.Данные;
	ПрямойЗапрос = ДанныеСправочник.ПрямойЗапрос;

	Если ПустоеЗначение(ТабличноеПоле.ТекущиеДанные) = 1 Тогда
		ТекПорядок = 0;
	Иначе
		ТекПорядок = ТабличноеПоле.ТекущиеДанные.Порядок;
	КонецЕсли;

	хнегоУровня);
	ПрямойЗапрос.УстановитьТекстовыйПараметр("Порядок",ТекПорядок);

	ТекстЗапроса = ПрямойЗапрос.ПодготовитьТекстЗапроса("
	|select TOP 1
	|  $Спр.ТекущийЭлемент AS [Элем $Справочник.ПрайсЛист]
	|from Справочник.ПрайсЛист AS Спр
	|INNER JOIN Справочник.ТМЦ AS СпрТМЦ ON((СпрТМЦ.ID = $Спр.ТМЦ)AND(СпрТМЦ.Descr like '%"+СокрЛП(ВыбНаименование)+"%'))
	|Where Спр.ParentID = :Родитель
	| AND $Спр.Порядок "+?(Направление>0,">","<")+" :Порядок
	|Order by $Спр.Порядок "+?(Направление>0,"","Desc")+"
	|");

	сп = СоздатьОбъект("СписокЗначений");
	ПрямойЗапрос.Выполнить("СписокЗначений",ТекстЗапроса,1).Выгрузить(сп);
	Если сп.РазмерСписка()=0 Тогда
		Предупреждение("Значение "+Симв(34)+СокрЛП(ВыбНаименование)+Симв(34)+" не найдено");
	Иначе
		ТабличноеПоле.ТекущаяСтрока = сп.ПолучитьЗначение(1);
	КонецЕсли;
КонецПроцедуры
 



так вот - при поиске внутри группы падает на строке кода
Код
Выбрать все
ТабличноеПоле.ТекущаяСтрока = сп.ПолучитьЗначение(1); 


и падает на ВТОРОЙ раз
первый раз код отрабатывает
второй раз значение найдено - проверил, но падает в осадок и опять пишет что занято получением других данных Печаль
что интересно: при поиске на самом верхнем уровне - все ок...
сколько хочешь ищи в обе стороны
какие есть еще варианты активизировать строку в текущем поле?
  
Наверх
 
IP записан
 
mctoha
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 39
Зарегистрирован: 26. Марта 2010
Re: Класс "ПоставщикДанных"
Ответ #584 - 22. Апреля 2010 :: 19:36
Печать  
и можно ли как-то уберечь базу от выпадания в осадок?
какие-то конструкции обработки ошибок типа Попытка.. Исключение?

а то неприятно...
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 37 38 [39] 40 41 ... 79
ОтправитьПечать