Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: работа с РегистрСведений  (Прочитано 13238 раз)
0 Пользователей и 1 Гость смотрят эту тему.
staff
Помогающий

ua
Offline Offline
Пол: Мужской

« : 01-12-2010 06:43 » 

Добрый день

есть внешняя обработка в 1С, необходимо во время формирования отчета через макет выводилась информация о регионе или городе местонахождения Контрагента. Информация об регионе и городе по определенным Контрагентам хранятся в РегистрСведения, каким способом его можно от-туда получать???
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 01-12-2010 08:11 » 

1. Запросом (с использованием СОЕДИНЕНИЕ - JOIN)
2. Программным отбором

Какой способ ближе?
Записан
staff
Помогающий

ua
Offline Offline
Пол: Мужской

« Ответ #2 : 01-12-2010 08:15 » 

ближе программный отбор
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 01-12-2010 09:26 » 

РегистрСведенийМенеджер.Получить() или РегистрСведенийМенеджер.ПолучитьПоследнее() (для периодического регистра сведений) - дальше читай встроенную справку. Если что будет непонятно - спрашивай
Записан
staff
Помогающий

ua
Offline Offline
Пол: Мужской

« Ответ #4 : 01-12-2010 12:50 » 

в источниках поисковика инета и встроенной справки как такового ничего не нашел, данные не вытягиваются из регистра, ругается на .Получить (((, может я не так понял в написании отбора
Записан
olegko87
Новенький

ua
Offline Offline

« Ответ #5 : 01-12-2010 13:45 » 

1. Запросом (с использованием СОЕДИНЕНИЕ - JOIN)
2. Программным отбором

Какой способ ближе?
а можно Запросом???

Добавлено через 13 минут и 53 секунды:
|         ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
|         ПО РеализацияУслугПоПереработке.Ссылка = КонтактнаяИнформация.Объект
так ??
может еще что-то нада?
« Последнее редактирование: 01-12-2010 13:59 от olegko87 » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 01-12-2010 15:19 » 

olegko87, да, идея - правильная.
А вот насколько правильная реализация - зависит от структуры данных и условий, на них наложенных.
Возможно потребуется дополнительные связи (связь возможна более чем по одному полю), или дополнительные условия на регистр сведений.
А может вообще неверна связь (что-то мне подозрительно, что у РеализацияУслугПоПереработке есть КонтактнаяИнформация - скорее у какого-то из полей РеализацияУслугПоПереработке, например, Контрагент)

staff,
РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>)
ПолучитьПоследнее (GetLast)
Синтаксис:

ПолучитьПоследнее(<КонецПериода>, <Отбор>)
Параметры:

<КонецПериода> (необязательный)

Тип: Дата; МоментВремени; Граница. Определяет момент времени, по который необходимо получить значения ресурсов. Может задаваться значениями типа Дата, МоментВремени или Граница. Если параметр не указан, то будут возвращены значения ресурсов самой последней записи регистра.
<Отбор> (необязательный)

Тип: Структура. Структура, содержащая отбор по измерениям регистра. Имя ключа структуры должно совпадать с именем измерения регистра, заданного в конфигураторе, а значение элемента структуры - задает отбираемое по данному измерению значение.
Если параметр не указан, то отбор не используется.
Возвращаемое значение:

Тип: Структура. Возвращает структуру, содержащую значения ресурсов.
Описание:

Получает значения ресурсов наиболее поздней записи регистра, соответствующей указанным периоду и значениям измерений регистра.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

Применим только для периодических регистров сведений.
Записан
olegko87
Новенький

ua
Offline Offline

« Ответ #7 : 02-12-2010 08:18 » 

да немного ошибся там
   ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
   ПО РеализацияУслугПоПереработке.Контрагент = КонтактнаяИнформация.Объект.Ссылка
у контактной информации есть объект, вид, тип и поля 1-10, нужно вытаскивать поле 3 если пусто то поле 4 когда вид.код = 10
возможно ли это сделать запросом? Как?

Добавлено через 22 минуты и 36 секунд:
и забыл сказать регистр сведени

Добавлено через 50 секунд:
не переодический
« Последнее редактирование: 02-12-2010 08:41 от olegko87 » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 02-12-2010 11:09 » 

Цитата
... контактной информации есть объект, вид, тип и поля 1-10, нужно вытаскивать поле 3 если пусто то поле 4 когда вид.код = 10...

Код:
	  |...
  |ВЫБОР
  | КОГДА КонтактнаяИнформация.Поле3 = &ПустаяСтрока
  | ТОГДА КонтактнаяИнформация.Поле4
  | ИНАЧЕ КонтактнаяИнформация.Поле3
  | КОНЕЦ КАК Поле34
ПустаяСтрока - задать в параметрах

А по поводу "Код = 10" - лучше так:
Код:
ГДЕ КонтактнаяИнформация.Вид = Значение(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)
Записан
olegko87
Новенький

ua
Offline Offline

« Ответ #9 : 02-12-2010 12:10 » 

Спасибо за помощь!
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines