Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
Ziinger
0 / 0 / 0
Регистрация: 09.04.2015
Сообщений: 14
1

Данные из справочника в табличную часть документа

20.05.2016, 20:12. Просмотров 3299. Ответов 7
Метки нет (Все метки)

Здравствуйте. Ситуация следующая:
Существует справочник "Маршруты" с реквизитами ПунктЗагрузки и ПунктРазгрузки, которые заполняются из справочника "Пункты назначения".

В документе есть табличная часть "заказ", где необходимо при выборе маршрута автоматически заполнить ПунктЗагрузки и ПунктРазгрузки.

Как правильно написать код? Подскажите пожалуйста
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2016, 20:12
Ответы с готовыми решениями:

Получение реквизита из справочника в табличную часть документа
Помогите пожалуйста! Как только ни пробовала, не могу понять в чем дело.... Есть справочник...

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

Из табличной части справочника в табличную часть документа
1С:8.2! Здраствуйте, имеются объекты: 1) справочник "Продукция" реквизиты:"Наименование"(указаны...

Получение реквизита из справочника в табличную часть документа
Здравствуйте, полный нуб в 1с. Прошу больно не пинать. Вопрос самый простой и глупый. Есть документ...

1С запрос из табличной части справочника в табличную часть документа
Здравствуйте! У меня есть справочник "Концерты" с табличной частью "Цены" (1 и 2 рисунки). Строки...

7
GreenkA
Форумчанин
Эксперт 1С
3004 / 1924 / 520
Регистрация: 25.06.2009
Сообщений: 6,817
20.05.2016, 22:22 2
Ziinger, на событие поля Маршрут ПриИзменении():
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
&НаКлиенте
Процедура ЗаказМаршрутПриИзменении(Элемент)
 ТекСтрока = Элемент.Родитель.ТекущиеДанные;
 СтруктураПунктов = ПолучитьПунктыПоМаршруту(ТекСтрока.Маршрут);
 ТекСтрока.ПунктЗагрузки = СтруктураПунктов.ПунктЗагрузки;
 ТекСтрока.ПунктРазгрузки= СтруктураПунктов.ПунктРазгрузки;
КонецПроцедуры
 
&НаСервере
Функция ПолучитьПунктыПоМаршруту(Маршрут)
 СтруктураПунктов = Новый Структура("ПунктЗагрузки,ПунктРазгрузки", Маршрут.ПунктЗагрузки,Маршрут.ПунктРазгрузки);
 Возврат  СтруктураПунктов;
КонецФункции
1
The_RK
3 / 3 / 2
Регистрация: 07.03.2016
Сообщений: 35
20.05.2016, 22:31 3
В общем, держи наглядный пример того, как в расходной накладной при выборе заказа заполняются табличные части, посредством передачи ссылки(на заказ).
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
&НаКлиенте
Процедура ЗаказПриИзменении(Элемент)
        Заказ = Объект.Заказ;
        Объект.Товары.Очистить();
        Объект.Услуги.Очистить();
        ТЧ(Заказ);
КонецПроцедуры
 
&НаСервере
Процедура ТЧ(Заказ)
    Запрос = Новый Запрос;
    Запрос.Текст =  
     ("ВЫБРАТЬ
      | ЗаказыТовары.Ссылка,
      | ЗаказыТовары.НомерСтроки,
      | ЗаказыТовары.Товар,
      | ЗаказыТовары.Цена,
      | ЗаказыТовары.Количество,
      | ЗаказыТовары.Сумма
      |ИЗ
      | Документ.Заказы.Товары КАК ЗаказыТовары
      |ГДЕ
      | ЗаказыТовары.Ссылка = &Ссылка");
     
     Запрос.УстановитьПараметр("Ссылка", Заказ);
     
     Результат = Запрос.Выполнить();
     
     ВыборкаЗапроса = Результат.Выбрать();
     
     Пока ВыборкаЗапроса.Следующий() Цикл
          СтрокаТовары = Объект.Товары.Добавить();
          СтрокаТовары.Товар = ВыборкаЗапроса.Товар;
          СтрокаТовары.Цена = ВыборкаЗапроса.Цена;
          СтрокаТовары.Количество = ВыборкаЗапроса.Количество;
          СтрокаТовары.Сумма = ВыборкаЗапроса.Сумма;
      КонецЦикла;
      
      Запрос = Новый Запрос;
      Запрос.Текст =
      ("ВЫБРАТЬ
       |    ЗаказыУслуги.Ссылка,
       |    ЗаказыУслуги.НомерСтроки,
       |    ЗаказыУслуги.Услуга,
       |    ЗаказыУслуги.Цена,
       |    ЗаказыУслуги.Количество,
       |    ЗаказыУслуги.Сумма
       |ИЗ
       |    Документ.Заказы.Услуги КАК ЗаказыУслуги
       |ГДЕ
       |    ЗаказыУслуги.Ссылка = &Ссылка");
      
      Запрос.УстановитьПараметр("Ссылка", Заказ);
      Результат = Запрос.Выполнить();
      
      ВыборкаЗапроса = Результат.Выбрать();
      
      Пока ВыборкаЗапроса.Следующий() Цикл
          СтрокаУслуги = Объект.Услуги.Добавить();
          СтрокаУслуги.Услуга = ВыборкаЗапроса.Услуга;
          СтрокаУслуги.Цена = ВыборкаЗапроса.Цена;
          СтрокаУслуги.Количество = ВыборкаЗапроса.Количество;
          СтрокаУслуги.Сумма = ВыборкаЗапроса.Сумма;
      КонецЦикла;
     
КонецПроцедуры
Если что-то в коде непонятно, спрашивай. А так в принципе ничего особенного......

Добавлено через 6 минут
GreenkA, Хорошая реализация.

Жаль только, что изначально невнимательно прочел..... И как следствие, выдал не то решение, но, быть может, пригодится......
2
Dethmontt
Модератор
Эксперт 1С
2736 / 2493 / 443
Регистрация: 10.03.2011
Сообщений: 9,057
Записей в блоге: 1
Завершенные тесты: 1
20.05.2016, 22:36 4
краткость - сестра таланта =)))

1C
1
2
3
4
5
6
7
8
9
10
&НаКлиенте
Процедура ЗаказМаршрутПриИзменении(Элемент)
 ТекСтрока = Элемент.Родитель.ТекущиеДанные;
 ЗаполнитьЗначенияСвойств(ТекСтрока , ПолучитьПунктыПоМаршруту(ТекСтрока.Маршрут);
КонецПроцедуры
 
&НаСервереБезКонтекста
Функция ПолучитьПунктыПоМаршруту(Маршрут)
 Возврат  Новый Структура("ПунктЗагрузки,ПунктРазгрузки", Маршрут.ПунктЗагрузки,Маршрут.ПунктРазгрузки);
КонецФункции
1
20.05.2016, 22:36
GreenkA
20.05.2016, 22:36
  #5

Не по теме:

Dethmontt, краткость - не моя сестра:D

0
Dethmontt
Модератор
Эксперт 1С
2736 / 2493 / 443
Регистрация: 10.03.2011
Сообщений: 9,057
Записей в блоге: 1
Завершенные тесты: 1
20.05.2016, 22:42 6
The_RK, как в принципе и в твоем случае

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
&НаКлиенте
Процедура ЗаказПриИзменении(Элемент)
        Заказ = Объект.Заказ;
        Объект.Товары.Очистить();
        Объект.Услуги.Очистить();
        ТЧ(Заказ);
КонецПроцедуры
 
&НаСервере
Процедура ТЧ(Заказ)
    Запрос = Новый Запрос;
    Запрос.Текст =  
     ("ВЫБРАТЬ
      | ЗаказыТовары.Ссылка,
      | ЗаказыТовары.НомерСтроки,
      | ЗаказыТовары.Товар,
      | ЗаказыТовары.Цена,
      | ЗаказыТовары.Количество,
      | ЗаказыТовары.Сумма,
      | ""Товары"" КАК ИмяТаблицы
      |ИЗ
      | Документ.Заказы.Товары КАК ЗаказыТовары
      |ГДЕ
      | ЗаказыТовары.Ссылка = &Ссылка
      |;
       |ВЫБРАТЬ
       |    ЗаказыУслуги.Ссылка,
       |    ЗаказыУслуги.НомерСтроки,
       |    ЗаказыУслуги.Услуга,
       |    ЗаказыУслуги.Цена,
       |    ЗаказыУслуги.Количество,
       |    ЗаказыУслуги.Сумма,
       | ""Услуги"" КАК ИмяТаблицы
       |ИЗ
       |    Документ.Заказы.Услуги КАК ЗаказыУслуги
       |ГДЕ
       |    ЗаказыУслуги.Ссылка = &Ссылка");
     
     Запрос.УстановитьПараметр("Ссылка", Заказ);
     
     Пакеты = Запрос.ВыполнитьПакет();
     
   Для каждого Выборка Из Пакеты Цикл
      ВыборкаЗапроса = Выборка.Выбрать(); 
      Пока ВыборкаЗапроса.Следующий() Цикл
          ЗаполнитьЗначениеСвойств(Объект[ВыборкаЗапроса.ИмяТаблицы].Добавить(), ВыборкаЗапроса);
         КонецЦикла;
   КонецЦикла;
      
КонецПроцедуры
1
Ziinger
0 / 0 / 0
Регистрация: 09.04.2015
Сообщений: 14
20.05.2016, 22:50  [ТС] 7
Спасибо большое.
0
Dethmontt
Модератор
Эксперт 1С
2736 / 2493 / 443
Регистрация: 10.03.2011
Сообщений: 9,057
Записей в блоге: 1
Завершенные тесты: 1
20.05.2016, 22:56 8
Цитата Сообщение от The_RK Посмотреть сообщение
Жаль только, что изначально невнимательно прочел..... И как следствие, выдал не то решение, но, быть может, пригодится......
100% пригодиться, молодец!
1
20.05.2016, 22:56
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2016, 22:56

Автозаполнение из табличной части справочника в табличную часть документа
Здравствуйте , помогите пожалуйста с кодом Мне нужно чтобы автоматически заполнялась табличная...

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

Заполнить табличную часть одного документа из другого документа
здравствуйте! У меня есть документа оплата заказа, в нём есть табличная часть, которая загружается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.