Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
19 Дек 2018, 13:20
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Запрос к Регистру сведений  (Прочитано 13179 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн frank

  • **
  • Сообщений: 94
  • РЕПУТАЦИЯ: 11
  • КПД: 12%
  • Регистрация: 2010-12-08
  • Сайт: 
  • Профессия: Программист 1С
При оформлении документы "Выдача" формируется запрос к регистру сведений, для получения текущего статуса оборудования, поиск согласно ШтрихКоду. Основные данные т.к. Наименование и Отделение к которому оно прикреплено забивается из справочники "Оборудование". "Статус" (Выдано/Принято) выберается из РегистраСведений "ДвижениеОборудования" где накапливается данные внесенные этим же документом.

Что я делаю не так?????

Процедура СтатусОборуд(СтрокаТабличнойЧасти)
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |   ДвижениеОборудования.Статус
                  |ИЗ
                  |   РегистрСведений.ДвижениеОборудования КАК ДвижениеОборудования
                  |ГДЕ
                  |   ДвижениеОборудования.ШтрихКод = &ШтрихКод"
               ;
   Запрос.УстановитьПараметр("ШтрихКод",СтрокаТабличнойЧасти.ШтрихКод);
   СтатусОборудования = Запрос.Выполнить();
   СтрокаТабличнойЧасти.Статус = СтатусОборудования;
КонецПроцедуры

Не могу получить "Статус"...


Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Какие измерения имеет регистр "ДвижениеОборудования"? Регистр сведений периодический?

и вот это вот не правильно:
   СтатусОборудования = Запрос.Выполнить();
   СтрокаТабличнойЧасти.Статус = СтатусОборудования;

Если вы в запросе должны получить одну строку и из нее взять статус, то код будет такой:
СтатусОборудованияВыборка=Запрос.Выполнить().Выбрать();
Если СтатусОборудованияВыборка.Следующий() тогда
   СтрокаТабличнойЧасти.Статус=СтатусОборудованияВыборка.Статус
КонецЕсли;

Но это при условии, что запрос получает правильно данные.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Оффлайн frank

  • **
  • Сообщений: 94
  • РЕПУТАЦИЯ: 11
  • КПД: 12%
  • Регистрация: 2010-12-08
  • Сайт: 
  • Профессия: Программист 1С
РегистрСведений.ДвижениеОборудования - измерени: Дата(Дата), Оборудование(Строка), Подразделение (Справочник.Подразделения), Статус (ПеречислениеСсылка.ВыдачаПрием), ШтрихКод (СправочникСсылка.Оборудование). Справочник.оборудование основное представление в виде кода.
Периодичность в пределаъх дня

Оффлайн frank

  • **
  • Сообщений: 94
  • РЕПУТАЦИЯ: 11
  • КПД: 12%
  • Регистрация: 2010-12-08
  • Сайт: 
  • Профессия: Программист 1С
Непокатило  <_<

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Тогда запрос должен быть такой:
"ВЫБРАТЬ
 |   ДвижениеОборудования.Статус
 |ИЗ
 |   РегистрСведений.ДвижениеОборудования.СрезПоследних(, ШтрихКод = &ШтрихКод) КАК ДвижениеОборудование"
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
В таком случае, будут браться не все подряд записи регистра с вашим ШтрихКодом, а последние. Можно так же брать их на определенную дату.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1102
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Регистр - периодический.

Если выбираем запросом, то лучше использовать виртуальную таблицу СрезПоследних.
Либо отсортировать основную таблицу регистра по периоду по убыванию и получить данные из первой строки (либо в запросе добавить ПЕРВЫЕ 1, либо в выборке получить только первую строку).

Если бы Состояние стояло в ресурсах - то можно было использовать метод менеджера регистра сведений ПолучитьПоследнее().
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1102
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Вопрос в догонку:

зачем нужны измерения Дата(Дата) (если есть стандартный реквизит Период)
и Оборудование(Строка) (если есть Штрихкод(СправочникСсылка.Оборудование))?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн frank

  • **
  • Сообщений: 94
  • РЕПУТАЦИЯ: 11
  • КПД: 12%
  • Регистрация: 2010-12-08
  • Сайт: 
  • Профессия: Программист 1С
После последних изминений запрос принял след. вид:

Процедура СтатусОборуд(СтрокаТабличнойЧасти)
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
    |   ДвижениеОборудованияСрезПоследних.Статус
    |ИЗ
    |   РегистрСведений.ДвижениеОборудования.СрезПоследних(, ШтрихКод = &ШтрихКод) КАК ДвижениеОборудованияСрезПоследних"
   ;
Запрос.УстановитьПараметр("ШтрихКод",СтрокаТабличнойЧасти.ШтрихКод);
СтатусОборудованияВыборка=Запрос.Выполнить().Выбрать();
СтрокаТабличнойЧасти.Статус = СтатусОборудованияВыборка;
КонецПроцедуры

Процедура ОборудованиеШтрихКодПриИзменении(Элемент)
   ПодстановкаДанных(ЭлементыФормы.Оборудование.ТекущиеДанные);
   СтатусОборуд(ЭлементыФормы.Оборудование.ТекущиеДанные);
КонецПроцедуры



Измерение "Дата" удалена (действительно не нужно), на счет менеджера регистра сведений по подробней пжл., т.к. выше перечисленный запрос ничего не дала. :fdbsdfbsd:

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1102
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
СтатусОборудованияВыборка=Запрос.Выполнить().Выбрать();
СтрокаТабличнойЧасти.Статус = СтатусОборудованияВыборка;

надо заменить на

СтатусОборудованияВыборка=Запрос.Выполнить().Выбрать();
СтатусОборудованияВыборка.Следующий();
СтрокаТабличнойЧасти.Статус = СтатусОборудованияВыборка.Статус;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.


Теги:
 

Запрос Параметры для "ИЗ"

Автор БерезинРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3522
Последний ответ 15 Май 2013, 23:27
от Березин
Что быстрее: Загрузить табличную часть в запрос и там добавить колонки, или пробежаться циклом по ТЧ и добавить значения в колонки

Автор ZeedРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1447
Последний ответ 11 Июл 2016, 09:00
от vitasw
Запрос по обработке "Согласование заявок"

Автор DenielAkreedРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 1174
Последний ответ 29 Сен 2016, 02:39
от DenielAkreed
После "Выборка = Запрос.Выполнить().Выбрать()" строка в выборке автоматически переключается сама

Автор RuslerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 1029
Последний ответ 30 Мар 2018, 05:05
от Luzer1C
8.2 Бух. Запрос с условием "комментарий содержит текст"

Автор bolobolРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 13
Просмотров: 18929
Последний ответ 02 Сен 2011, 01:14
от bolobol

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
58 Сообщений
wise wise
42 Сообщений
alex0402
36 Сообщений
LexaK
32 Сообщений
alexandr_ll
31 Сообщений
AIFrame AIFrame
28 Сообщений
byte777
26 Сообщений
antoneus
25 Сообщений
happynattion
22 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
21 Сообщений

* Кто онлайн

  • Точка Гостей: 657
  • Точка Скрытых: 0
  • Точка Пользователей: 6
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal