Имя: Пароль:
1C
1С v8
Данные из запроса
0 TheWer
 
24.07.12
15:06
Имеем запрос, формирующий таблицу для ОбработкиПроведения. Из него необходимо вытащить одно значение( и, в будущем, вставить в табличную часть). Помогите новичку в этом, на мой взгляд, нелегком деле.
1 Ненавижу 1С
 
гуру
24.07.12
15:07
хорошо начал
2 yanejsh
 
24.07.12
15:08
давай уже, всю историю рассказывай
3 TheWer
 
24.07.12
15:12
Функция ИнициализироватьДанныеДокумента(ДокументСсылка) Экспорт
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("Ссылка", ДокументСсылка);
   Запрос.Текст =
   "ВЫБРАТЬ ПЕРВЫЕ 1
   |    УчетГСМПробег.Ссылка.Дата КАК Период,
   |    УчетГСМПробег.Конец КАК Значение,
   |    УчетГСМПробег.Ссылка.Автомобиль КАК Автомобиль,
   |    ""Пробег"" КАК ВидХарактеристики,
   |    ИСТИНА КАК Активность,
   |    &Ссылка КАК Регистратор
   |ИЗ
   |    Документ.УчетГСМ.Пробег КАК УчетГСМПробег
   |ГДЕ
   |    УчетГСМПробег.Ссылка = &Ссылка
   |
   |УПОРЯДОЧИТЬ ПО
   |    Значение УБЫВ
   |АВТОУПОРЯДОЧИВАНИЕ";
   Возврат Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.Прямой);
________________________________

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
   
   ТаблицаДвижения = Документы.УчетГСМ.ИнициализироватьДанныеДокумента(Ссылка);
   
   ДвиженияХарактеристики = Движения.ХарактеристикиАвтомобиля;
   ДвиженияХарактеристики.Записывать = Истина;
   ДвиженияХарактеристики.Загрузить(ТаблицаДвижения);

Необходимо выцепить знаечние "Конец" и вставить в воображаемую табличку...
4 TheWer
 
25.07.12
12:10
Товарищи, неужто даже намеков не будет?
5 GANR
 
25.07.12
12:17
(0) >Из него необходимо вытащить одно значение
Т. е. из таблицы значений, которую формирует функция ИнициализироватьДанныеДокумента(ДокументСсылка) ???

ТаблицаДвижения[0] - первая строка табличной части.

Но вообще на такие вопросы гораздо быстрее и информативнее ответят отладчик и синтаксис-помощник.
6 ParinovS
 
25.07.12
12:19
а автоупорядочивание зачем?
7 TheWer
 
25.07.12
12:41
Код в большенстве своем не мой, но приходится с ним работать, как только встречу того, кто это делал обязательно спрошу зачем там автоупорядочивание...
8 Рэйв
 
25.07.12
12:44
НужноеЗначение=Запрос.Выполнить().Выгрузить()[0].Значение;
9 macana
 
25.07.12
12:49
(7) жгет )
10 TheWer
 
25.07.12
13:28
>НужноеЗначение=Запрос.Выполнить().Выгрузить()[0].Значение;

Все бы хорошо, но запросик идет в Модуле менеджера, а вот конкретное значение из этого запроса нужно впихнуть в форму документа, а если точнее в табличную часть при определенных условиях ;)
11 Рэйв
 
25.07.12
13:49
ну передавай в форму да впихивай.
12 TheWer
 
26.07.12
15:30
Я конечно дуб в 1С...

{Документ.УчетГСМ.Форма.ФормаДокумента.Форма(155,26)}: Обращение к процедуре как к функции (ПодобратьАвтомобиль)
    ТекущаяСтрока.Начало = <<?>>ПодобратьАвтомобиль();

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

   Запрос.УстановитьПараметр("Автомобиль", Объект.Автомобиль);
   Запрос.УстановитьПараметр("Дата", Объект.Дата);

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

   ВыборкаДетальныеЗаписи = Результат.Выбрать();
13 Ненавижу 1С
 
гуру
26.07.12
15:34
ТекущаяСтрока.Начало = ПодобратьАвтомобиль(); //что ты тут хочешь присвоить?
14 TheWer
 
26.07.12
15:46
М, видимо получаемое значение запроса, но что-то уже и не уверен...
15 hhhh
 
26.07.12
15:53
(14) чего, ТекущаяСтрока.Начало имеет такой офигенный тип? Получаемое значение запроса?
16 TheWer
 
27.07.12
12:45
Я не уверен на счет офигенного типа, но думаю вам виднее.
17 hhhh
 
27.07.12
12:56
(16) ну вам же понятно пишет "Обращение к процедуре как к функции (ПодобратьАвтомобиль)"

так и есть, у вас процедура ПодобратьАвтомобиль

вызывайте функцию в этом месте.
18 TheWer
 
27.07.12
13:10
>вызывайте функцию в этом месте.
вызывал, вставляемое в таблицу значение равно 0, неожиданно как-то...
19 hhhh
 
27.07.12
13:15
(18) ну значит эта функция вернула значение 0. Оно и вставилось. Вы отладчиком проверьте.
20 TheWer
 
27.07.12
13:47
&НаКлиенте
Процедура ПробегПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    ТекущаяСтрока = Элементы.Пробег.ТекущиеДанные;
    ПересчетДанныхСтроки(ТекущаяСтрока);
>флаг         ТекущаяСтрока.Начало = ПодобратьАвтомобиль();

{(1,1)}: Переменная не определена (ПодобратьАвтомобиль)
{(1,1)}: Переменная не определена (ВыборкаДетальныеЗаписи)
21 TheWer
 
27.07.12
13:47
Втф? T_T
22 hhhh
 
27.07.12
13:59
(21) понятно.
23 TheWer
 
29.07.12
18:58
А мне что-то не очень... Коли вам понятно, что же вы не делитесь ценной информацией, как лицо сильно не дальновидное? :(
24 hhhh
 
29.07.12
21:30
просто такое ощущение, что вы глаза завязали и сидите шпарите по клавишам. А так да, я недальновидный, хожу в очках.
25 TheWer
 
30.07.12
09:47
Учитывая мое двухмесячное знакомство с сабжем, метафора как нельзя к стати...
26 TheWer
 
30.07.12
12:41
Всем спасибо, причиной сего геморроя стала простоя невнимательность, разобрался.