Имя: Пароль:
1C
 
КопироватьТаблЧасть полностью
, ,
0 Олеся999
 
06.02.15
12:49
Скажите пожалуйста, как копировать из одной ТабличнойЧасти  справочника1 в ТабличнуюЧасть другого справочника2?
1 Cube
 
06.02.15
12:52
(0) Если ТЧ идентичные, то:

Табличная часть (Tabular section)
Выгрузить (Unload)
Вариант синтаксиса: Выгрузить колонки

Синтаксис:
Выгрузить(<Строки>, <Колонки>)

Параметры:

<Строки> (необязательный)
Тип: Массив.
Массив строк для выгрузки. Если не указан, выгружаются все строки табличной части.

<Колонки> (необязательный)
Тип: Строка.
Список колонок для копирования в формате: "Колонка1, Колонка2...". Если список не задан, то будут скопированы все колонки.
Описание варианта метода:

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


А потом:

Табличная часть (Tabular section)
Загрузить (Load)

Синтаксис:

Загрузить(<Таблица>)
Параметры:

<Таблица> (обязательный)
Тип: ТаблицаЗначений.
Таблица значений, откуда загружается табличная часть. Колонки таблиц совмещаются по именам.

Описание:
Загружает табличную часть из таблицы значений. При этом все прежние строки табличной части удаляются. При загрузке значения в колонках табличной части заполняются значениями из колонок таблицы значений с совпадающими именами.


Это всё есть в синтаксис-помощнике...
2 Олеся999
 
06.02.15
13:16
Вот так вот ?
ТЧ=Справочники.СпецификацияТК.ТаблицаSMD.Выгрузить();
Справочники.Прогноз.Таб1.Загрузить(ТЧ);
3 1Сергей
 
06.02.15
13:17
(2) нет, не так
4 Cube
 
06.02.15
13:18
(2) Чё?))

Как-то так:

ТЧ = СсылкаНаСпецификациюТК.ТаблицаSMD.Выгрузить();
СсылкаНаПрогноз.Таб1.Загрузить(ТЧ);

А если подумать, то вообще так:

СсылкаНаПрогноз.Таб1.Загрузить(СсылкаНаСпецификациюТК.ТаблицаSMD.Выгрузить());
5 Ёпрст
 
06.02.15
13:19
(2) найти ссылку, поиметь объект, потом ужо загрузить и записать
6 Cube
 
06.02.15
13:19
(4) Ой ё... Записывать-то надо в объект...
Исправляюсь:

ТЧ = СсылкаНаСпецификациюТК.ТаблицаSMD.Выгрузить();
ОбъектПрогноз.Таб1.Загрузить(ТЧ);
7 ktvladimir
 
06.02.15
13:20
а если не одинаковые то
Для Каждого стр ИЗ СсылкаНаСпецификациюТК.ТаблицаSMD Цикл
  ЗаполнитьЗначенияСвойств(СсылкаНаПрогноз.Таб1.Добавить(), Стр);
КонецЦикла;
:)
8 ktvladimir
 
06.02.15
13:21
ну или точнее ОбъектПрогноз как правильно сказали
9 Олеся999
 
06.02.15
13:23
(6)
&НаСервере
Процедура СкопироватьВТаб2НаСервере()
ТЧ = СсылкаНаСпецификациюТК.ТаблицаSMD.Выгрузить();
ОбъектПрогноз.Таб2.Загрузить(ТЧ);
КонецПроцедуры


&НаКлиенте
Процедура СкопироватьВТаб2(Команда)
    СкопироватьВТаб2НаСервере();
КонецПроцедуры



{Справочник.СпецификацияТК.Форма.ФормаЭлемента.Форма(66,6)}: Переменная не определена (СсылкаНаСпецификациюТК)
ТЧ = <<?>>СсылкаНаСпецификациюТК.ТаблицаSMD.Выгрузить();  (Проверка: Сервер)
{Справочник.СпецификацияТК.Форма.ФормаЭлемента.Форма(67,1)}: Переменная не определена (ОбъектПрогноз)
<<?>>ОбъектПрогноз.Таб2.Загрузить(ТЧ); (Проверка: Сервер)
10 Cube
 
06.02.15
13:26
(9) Так "СсылкаНаСпецификациюТК" - это ссылка на элемент справочника, откуда ты копируешь ТЧ... Я её так для примера назвал, ты должна вместо этой переменной свою подставить...
11 Олеся999
 
06.02.15
13:34
(10) Я получается кнопку СкопироватьВТаб2 на форме СпецификацияТК сделала.
"СсылкаНаСпецификациюТК" Это то есть Справочники.СпецификацияТК.ТаблицаSMD ? или где можно ссылку глянуть?
12 Cube
 
06.02.15
13:39
(11) Если это кнопка на форме, то просто пиши

ТЧ = Объект.ТаблицаSMD.Выгрузить();

И при нажатии на кнопку предложи пользователю выбрать элемент справочника Прогноз, в который надо скопировать...
13 Олеся999
 
06.02.15
13:45
ТЧ = Объект.ТаблицаSMD.Выгрузить();
Объект.ТаблицаDP.Загрузить(ТЧ);
Вот так вот выгружает в пределах одного справочника
А как прописать путь чтобы выгружал в табличнуюЧасть другого справочника?
14 Cube
 
06.02.15
13:52
(13) Как-то так:

Прогноз = Справочники.Прогнозы.ПустаяСсылка();
Если ВвестиЗначение(Прогноз) Тогда
    ОбъектПрогноз = Прогноз.ПолучитьОбъект();
    ОбъектПрогноз.ТаблицаDP.Загрузить(Объект.ТаблицаSMD.Выгрузить());
    ОбъектПрогноз.Записать();
КонецЕсли;
15 Олеся999
 
06.02.15
14:01
(14) {Справочник.СпецификацияТК.Форма.ФормаЭлемента.Форма(74,6)}: Процедура или функция с указанным именем не определена (ВвестиЗначение)
Если <<?>>ВвестиЗначение(Прогноз) Тогда (Проверка: Сервер)
16 Олеся999
 
09.02.15
07:29
Как получить ссылку другой таблицы другого справочника?
17 Cube
 
09.02.15
07:45
(15) ВвестиЗначение() надо на клиенте делать-то...
18 Олеся999
 
09.02.15
07:54
Ну я вот так написала ...но не работает
&НаСервере
Процедура СкопироватьВТаб2НаСервере()

ТЧ = Объект.ТаблицаSMD.Выгрузить();
ПР=Справочники.Прогноз.ПустаяСсылка();
ПР.Таб1.Загрузить(ТЧ);
    
КонецПроцедуры


&НаКлиенте
Процедура СкопироватьВТаб2(Команда)
    СкопироватьВТаб2НаСервере();
КонецПроцедуры
19 Cube
 
09.02.15
08:34
(18) Опиши задачу: что требуется сделать и для чего это надо.
20 Олеся999
 
09.02.15
08:47
http://lvkr.ru/f/zBB8Xw/1280.jpg
Сделала предопределенный. Почему то не дает записывать туда.



&НаСервере
Процедура СкопироватьВТаб2НаСервере()
    

ТЧ = Объект.ТаблицаSMD.Выгрузить();
Справочники.Прогноз.ТаблицыСравнения.Таб2.Загрузить(ТЧ);

КонецПроцедуры


&НаКлиенте
Процедура СкопироватьВТаб2(Команда)
    СкопироватьВТаб2НаСервере();
КонецПроцедуры
21 Олеся999
 
09.02.15
08:49
(19) Мне нужно из таблицы одного справочника, скопировать данные,  в таблицу другого справочника ... Далее..что бы в каждой таблице провести свой расчет а потом эти таблицы просуммировать.
22 Cube
 
09.02.15
08:58
(21) "из таблицы одного справочника, скопировать данные,  в таблицу другого справочника"
Не понятно...
Нельзя из справочника ничего копировать и записывать в него тоже нельзя. Из ЭЛЕМЕНТОВ справочника можно.
Но, опять же, не понятно, откуда берется элемент справочника 2... Его нужно новый создать и заполнить или его пользователь должен указать?
23 Олеся999
 
09.02.15
09:51
(22) Ну в предопределенный ранее созданный
24 Cube
 
09.02.15
09:58
(23) Делай примерно так:

&НаСервере
Процедура СкопироватьВТаб2НаСервере(СсылкаНаПрогноз)

    ОбъектПрогноз = СсылкаНаПрогноз.ПолучитьОбъект();
    ОбъектПрогноз.ТаблицаDP.Загрузить(Объект.ТаблицаSMD.Выгрузить());
    ОбъектПрогноз.Записать();
    
КонецПроцедуры


&НаКлиенте
Процедура СкопироватьВТаб2(Команда)
    СсылкаНаПрогноз = Справочники.Прогнозы.ПустаяСсылка();
    Если ВвестиЗначение(СсылкаНаПрогноз) Тогда
        СкопироватьВТаб2НаСервере(СсылкаНаПрогноз);
    КонецЕсли;
КонецПроцедуры
25 Олеся999
 
09.02.15
10:36
&НаСервере
Процедура СкопироватьВТаб2НаСервере(СсылкаНаПрогноз)

    ОбъектПрогноз = СсылкаНаПрогноз.ПолучитьОбъект();
    ОбъектПрогноз.Таб2.Загрузить(Объект.ТаблицаSMD.Выгрузить());
    ОбъектПрогноз.Записать();
    
КонецПроцедуры


&НаКлиенте
Процедура СкопироватьВТаб2(Команда)
    СсылкаНаПрогноз = Справочники.Прогноз.ТаблицыСравнения.Пустая();
    Если ВвестиЗначение(СсылкаНаПрогноз) Тогда
        СкопироватьВТаб2НаСервере(СсылкаНаПрогноз);
    КонецЕсли;
КонецПроцедуры



Пишет ошибку:
{Справочник.СпецификацияТК.Форма.ФормаЭлемента.Форма(79,23)}: Переменная не определена (Справочники)
    СсылкаНаПрогноз = <<?>>Справочники.Прогноз.ТаблицыСравнения.Пустая(); (Проверка: Тонкий клиент)
ТаблицыСравнения- это предопределенный элемент в котором содержится Таб2
26 Cube
 
09.02.15
10:40
(25) Потому что надо писать правильно...

Вместо

СсылкаНаПрогноз = Справочники.Прогноз.ТаблицыСравнения.Пустая();

пиши

СсылкаНаПрогноз = ПредопределенноеЗначение("Справочник.Прогноз.ПустаяСсылка");
27 ShoGUN
 
09.02.15
10:40
(25) На клиенте это недоступно, перенеси весь код на сервер, на клиенте оставь только вызов серверной процедуры.
И матчасть подучи, что ли, что за программирование методом тыка?
28 ShoGUN
 
09.02.15
10:41
(26) Не проще ли ссылку уже на сервере получить, зачем с клиента её передавать?
29 Dmitrii
 
гуру
09.02.15
10:42
У меня одного ощущение, что автор пытается написать стандартный функционал платформы создания объектов на основании и перенести стандартную ОбработкаЗаполнения чёрте куда?
30 Cube
 
09.02.15
10:50
(28) Ну, ежели ты сумеешь &НаСервере отобразить диалог выбора элемента справочника, то тебе надо памятник будет поставить.
31 Cube
 
09.02.15
10:51
(29) Ты не один, я с тобой :)
Но, как показывает практика, она на уточняющие вопросы практически не отвечает...
Ну, хоть фотки выкладывает :)
32 ShoGUN
 
09.02.15
10:52
(30) Тьфу ты, просмотрел. Сорри.
33 Олеся999
 
09.02.15
10:55
(26) Спасибо работает :)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший