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

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

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

Оффлайн marshalbratsk

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


Оффлайн LexaK

  • *****
  • Сообщений: 1254
  • РЕПУТАЦИЯ: 345
  • КПД: 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

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

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

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

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

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

Оффлайн marshalbratsk

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

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

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

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

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

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


Теги:
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

oleg-x
176 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
81 Сообщений
alex0402
80 Сообщений
AsadRoman
35 Сообщений
Kironten
34 Сообщений
ilyay ilyay
30 Сообщений
Golickoff Golickoff
29 Сообщений
AIFrame
27 Сообщений
BuhRust
26 Сообщений
Варвар
20 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal