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

Автор Тема: Получение данных справочника для обработки  (Прочитано 627 раз)

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

Оффлайн marshalbratsk

  • *
  • Сообщений: 14
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-05-25
  • Сайт: 
  • Профессия: Ученик 1С
Имеется справочник "АвтомобилиИМеханизмы", в котором есть табличная часть "НормыРасхода" из которой нужно получить значения для обработки. 
В обработке "КалькуляторРасходаТоплива" выбирается наименование транспорта, и по этому наименованию надо получить данные из табличной части справочника. Как это можно сделать?
Простите за довольно банальный вопрос, но это мне очень поможет.


Оффлайн LexaK

  • *****
  • Сообщений: 1246
  • РЕПУТАЦИЯ: 344
  • КПД: 28%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
с такими данными, вам надо динамическиизменяемый запрос в обработке выполнять
вот пример функции которая возвращает результат запроса
&НаСервере
Функция ПолучитьДанные(прТранспорт,прСезон)
//прТранспорт - ссылка из поля Транспорт
//прСезон - "Лето" или "Зима"

лкЗапрос = Новый Запрос;
лкЗапрос.Текст = "
    |Выбрать
|   Спр.ВидТоплива,
|   Спр.ЕдИзмерения,
|   Спр.ЛинРасход100км<Сезон> как ЛинРасход100км,
|   Спр.Ковш<Сезон> как Ковш,
|   Спр.Фреза<Сезон> как Фреза,
|   Спр.Щетка<Сезон> как Щетка,
|   Спр.Гклин<Сезон> как Гклин
|
|из
|  Справочник.АвтомобилиИМеханизмы.НормыРасхода Спр
|где
|   Спр.Ссылка = &Транспорт
|
|
|";
лкЗапрос.УстановитьПараметр("Транспорт",прТранспорт);
лкЗапрос.Текст = СтрЗаменить(лкЗапрос.Текст,"<Сезон>",прСезон);

лкРезультат = лкЗапрос.Выполнить().Выбрать();
//далее обработка результата запроса

КонецФункции


вообще структуру данных вам какой-то говнокодировщик писал
следовало бы ТЧ сделать по другому,
на первый взгляд
Поля
Расход100км,
Сезон, (можно перечисление сделать Сезоны.Лето,Сезоны.Зима)
ДопОборудование, различные комбинации доп. оборудования (справочник)
и т.д.

тогда итоговая таблица выглядела бы
РасходТопливаСезонДоп.Обор.
23ЛетоКовш
28ЗимаКовш
25ЗимаБез обор.

с такой структурой гораздо удобнее получать данные
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн marshalbratsk

  • *
  • Сообщений: 14
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-05-25
  • Сайт: 
  • Профессия: Ученик 1С
с такими данными, вам надо динамическиизменяемый запрос в обработке выполнять
вот пример функции которая возвращает результат запроса
&НаСервере
Функция ПолучитьДанные(прТранспорт,прСезон)
//прТранспорт - ссылка из поля Транспорт
//прСезон - "Лето" или "Зима"

лкЗапрос = Новый Запрос;
лкЗапрос.Текст = "
    |Выбрать
|   Спр.ВидТоплива,
|   Спр.ЕдИзмерения,
|   Спр.ЛинРасход100км<Сезон> как ЛинРасход100км,
|   Спр.Ковш<Сезон> как Ковш,
|   Спр.Фреза<Сезон> как Фреза,
|   Спр.Щетка<Сезон> как Щетка,
|   Спр.Гклин<Сезон> как Гклин
|
|из
|  Справочник.АвтомобилиИМеханизмы.НормыРасхода Спр
|где
|   Спр.Ссылка = &Транспорт
|
|
|";
лкЗапрос.УстановитьПараметр("Транспорт",прТранспорт);
лкЗапрос.Текст = СтрЗаменить(лкЗапрос.Текст,"<Сезон>",прСезон);

лкРезультат = лкЗапрос.Выполнить().Выбрать();
//далее обработка результата запроса

КонецФункции


вообще структуру данных вам какой-то говнокодировщик писал
следовало бы ТЧ сделать по другому,
на первый взгляд
Поля
Расход100км,
Сезон, (можно перечисление сделать Сезоны.Лето,Сезоны.Зима)
ДопОборудование, различные комбинации доп. оборудования (справочник)
и т.д.

тогда итоговая таблица выглядела бы
РасходТопливаСезонДоп.Обор.
23ЛетоКовш
28ЗимаКовш
25ЗимаБез обор.

с такой структурой гораздо удобнее получать данные

Огромное спасибо за подсказку с новой структурой данных (всё поменял, теперь намного чище стало и приятнее), благо я ту часть даже не стал заполнять ибо мне (говнокодеру) не казалась та структура чем то здоровым. Душевное спасибо. Но вопрос обращения к данным тогда не уходит, а меняется. Как тогда к таким данным обратиться будет лучше?

Оффлайн LexaK

  • *****
  • Сообщений: 1246
  • РЕПУТАЦИЯ: 344
  • КПД: 28%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
а зачем оборудование и операцию в одну кучу свалили?
разнесите!

операции сделайте такие

РасходНа100км,
Моточас,
ОперацияТакаято,
ОперацияДругая,
и т.д.

а в запросе уже конкретно передаете в параметрах те значения по которым хотите получить данные
например в условии запроса
...
где
  Спр.Сезон = &Сезон
и Спр.Оборудование = &Оборудование

к сведению, набор условий тоже можно формировать динамически с таким же приемом СтрЗаменить()
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн marshalbratsk

  • *
  • Сообщений: 14
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-05-25
  • Сайт: 
  • Профессия: Ученик 1С
а зачем оборудование и операцию в одну кучу свалили?
разнесите!

операции сделайте такие

РасходНа100км,
Моточас,
ОперацияТакаято,
ОперацияДругая,
и т.д.

а в запросе уже конкретно передаете в параметрах те значения по которым хотите получить данные
например в условии запроса
...
где
  Спр.Сезон = &Сезон
и Спр.Оборудование = &Оборудование

к сведению, набор условий тоже можно формировать динамически с таким же приемом СтрЗаменить()

Извините меня за наглость, но можете написать код функции, которая будет возвращать значение столбца "Расход"? А то я не совсем понимаю как написать запрос и значение как вернуть.
Нормально же будет, если в калькуляторе будет выглядеть как:
Условие (в нём выбор оборудования и т.п.)
Переменная=Функция
....
Расход=Переменная+Переменная и т.п.?


Теги:
 

Перенос данных из 1с 82 БП (базовая) в 1с 82 БГУ (базовая)

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

Ответов: 4
Просмотров: 6875
Последний ответ 06 Дек 2014, 17:40
от дфтын
Поиск по бае данных,(полнотекстовый поиск)

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

Ответов: 0
Просмотров: 3629
Последний ответ 19 Май 2014, 15:40
от kot_oo
Как исправить при обновлении ИБ: Ошибка в запросе набора данных по причине: {(58, 2)}: Несовместимые типы "ВЫБОР" <<?>>ВЫБОР

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

Ответов: 1
Просмотров: 1721
Последний ответ 01 Янв 2017, 20:27
от Геннадий ОбьГЭС
"Задваивание" данных в отчете

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

Ответов: 13
Просмотров: 6399
Последний ответ 15 Окт 2015, 11:21
от Mari_beginner
Как вызвать "Анализ субконто" из справочника "Контрагенты"

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

Ответов: 1
Просмотров: 6051
Последний ответ 06 Фев 2012, 10:46
от cska-fanat-kz

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

oleg-x
116 Сообщений
alex0402
102 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
73 Сообщений
AIFrame
51 Сообщений
Golickoff Golickoff
49 Сообщений
ilyay ilyay
49 Сообщений
ab30ru
38 Сообщений
wise wise
34 Сообщений
Амал
30 Сообщений
lansy
22 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal