Имя: Пароль:
1C
1С v8
Вторая таблица в документе
,
0 RedFox
 
29.09.11
08:23
Доброго времени суток.

Есть документ с табличной частью. Нужно сделать вторую таблицу, в которую просто копируется первая. Что-то я туплю. Прошу помощи.
1 Гефест
 
29.09.11
08:24
Чем помочь-то?..
2 Ткачев
 
29.09.11
08:25
Выгрузить-Загрузить не работает ?
3 RedFox
 
29.09.11
08:33
Нет, пишет "Поле объекта недоступно для записи".
4 DJ Anthon
 
29.09.11
08:35
код показать слабо, да?
5 RedFox
 
29.09.11
08:40
ДанныеСтроки = ЭлементыФормы.Путевки.ТекущиеДанные;
   Если НЕ ЗначениеЗаполнено(ДанныеСтроки.Путевка) Тогда
       Возврат;
   КонецЕсли;
   Если НЕ ДанныеСтроки.Путевка.Контрагент=Контрагент Тогда
       глСообщитьОУ("У выбранной путевки контрагент не совпадает с контрагентом в шапке документа!");
       ДанныеСтроки.Путевка = Справочники.Путевки.ПустаяСсылка();
       Возврат;
   КонецЕсли;
   
   Запрос = Новый Запрос();
   Запрос.Текст = "ВЫБРАТЬ
                  |    ВЫБОР
                  |        КОГДА ИзмененияПутевокСрезПоследних.ТипНомера ЕСТЬ NULL
                  |            ТОГДА Путевки.ТипНомера
                  |        ИНАЧЕ ИзмененияПутевокСрезПоследних.ТипНомера
                  |    КОНЕЦ КАК ТипНомера,
                  |    ВЫБОР
                  |        КОГДА ИзмененияПутевокСрезПоследних.ДатаОжидЗаезда ЕСТЬ NULL
                  |            ТОГДА Путевки.ДатаОжидЗаезда
                  |        ИНАЧЕ ИзмененияПутевокСрезПоследних.ДатаОжидЗаезда
                  |    КОНЕЦ КАК ДатаОжидЗаезда,
                  |    ВЫБОР
                  |        КОГДА ИзмененияПутевокСрезПоследних.ДатаОжидВыезда ЕСТЬ NULL
                  |            ТОГДА Путевки.ДатаОжидВыезда
                  |        ИНАЧЕ ИзмененияПутевокСрезПоследних.ДатаОжидВыезда
                  |    КОНЕЦ КАК ДатаОжидВыезда,
                  |    ВЫБОР
                  |        КОГДА ИзмененияПутевокСрезПоследних.ТипПитания ЕСТЬ NULL
                  |            ТОГДА Путевки.ТипПитания
                  |        ИНАЧЕ ИзмененияПутевокСрезПоследних.ТипПитания
                  |    КОНЕЦ КАК ТипПитания,
                  |    ВЫБОР
                  |        КОГДА ИзмененияПутевокСрезПоследних.ТипЛечения ЕСТЬ NULL
                  |            ТОГДА Путевки.ТипЛечения
                  |        ИНАЧЕ ИзмененияПутевокСрезПоследних.ТипЛечения
                  |    КОНЕЦ КАК ТипЛечения,
                  |    ВЫБОР
                  |        КОГДА ИзмененияПутевокСрезПоследних.КатегорияПутевки ЕСТЬ NULL
                  |            ТОГДА Путевки.КатегорияПутевки
                  |        ИНАЧЕ ИзмененияПутевокСрезПоследних.КатегорияПутевки
                  |    КОНЕЦ КАК КатегорияПутевки,
                  |    ВЫБОР
                  |        КОГДА ИзмененияПутевокСрезПоследних.Цена ЕСТЬ NULL
                  |            ТОГДА Путевки.Цена
                  |        ИНАЧЕ ИзмененияПутевокСрезПоследних.Цена
                  |    КОНЕЦ КАК Стоимость,
                  |    ВЫБОР
                  |        КОГДА ИзмененияПутевокСрезПоследних.ФизЛицо ЕСТЬ NULL
                  |            ТОГДА Путевки.ФизЛицо
                  |        ИНАЧЕ ИзмененияПутевокСрезПоследних.ФизЛицо
                  |    КОНЕЦ КАК ФизЛицо,
                  |    ВЫБОР
                  |        КОГДА ИзмененияПутевокСрезПоследних.Контрагент ЕСТЬ NULL
                  |            ТОГДА Путевки.Контрагент
                  |        ИНАЧЕ ИзмененияПутевокСрезПоследних.Контрагент
                  |    КОНЕЦ КАК Контрагент,
                  |    ВЫБОР
                  |        КОГДА ИзмененияПутевокСрезПоследних.ДоговорКонтрагента ЕСТЬ NULL
                  |            ТОГДА Путевки.ДоговорКонтрагента
                  |        ИНАЧЕ ИзмененияПутевокСрезПоследних.ДоговорКонтрагента
                  |    КОНЕЦ КАК ДоговорКонтрагента
                  |ИЗ
                  |    Справочник.Путевки КАК Путевки
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИзмененияПутевок.СрезПоследних(&ДатаСреза, Путевка = &Путевка И Регистратор<>&ТекРегистратор) КАК ИзмененияПутевокСрезПоследних
                  |        ПО Путевки.Ссылка = ИзмененияПутевокСрезПоследних.Путевка
                  |ГДЕ
                  |    Путевки.Ссылка = &Путевка";
   Запрос.УстановитьПараметр("Путевка",ДанныеСтроки.Путевка);
   Запрос.УстановитьПараметр("ТекРегистратор",Ссылка);
   Запрос.УстановитьПараметр("ДатаСреза",Дата);
   Выборка = Запрос.Выполнить().Выбрать();
   Выборка.Следующий();
   ЗаполнитьЗначенияСвойств(ДанныеСтроки,Выборка,"ТипНомера,ДатаОжидЗаезда,ДатаОжидВыезда,ТипПитания,ТипЛечения,КатегорияПутевки,Стоимость,ФизЛицо,Контрагент,ДоговорКонтрагента");
   ЭлементыФормы.ПутевкиЧ = ДанныеСтроки.Выгрузить();
6 Паланик
 
29.09.11
08:40
Скорее всего это даже не нужно. Суть общей задачи то какая?
7 RedFox
 
29.09.11
08:41
Просто вторая таблица повторяет вторую без возможности редактирования.
8 RedFox
 
29.09.11
08:42
"вторую" = первую
9 RedFox
 
29.09.11
08:43
С первой всё в порядке, всё нормально работает. Надо просто копировать данные из неё во вторую.
10 lxs
 
29.09.11
08:46
Зачем? Чтобы после редактирования первой было с чем сравнить?
11 RedFox
 
29.09.11
08:47
Да
12 lxs
 
29.09.11
08:47
визуально? или программно?
13 Escander
 
29.09.11
08:48
модуль объекта, событие перед записью:
ТЧ2.Загрузить(ТЧ1.Выгрузить());
не?
14 RedFox
 
29.09.11
08:49
Отображение визуально. Заполнение программно.
15 ZoRN
 
29.09.11
08:49
ЭлементыФормы.ПутевкиЧ2 = ДанныеСтроки.Выгрузить();
16 Escander
 
29.09.11
08:49
(11) сравнивай что там по ссылке и что в объекте - второй ТЧ не надо!
17 Escander
 
29.09.11
08:50
(15) формы может и не быть
18 RedFox
 
29.09.11
08:50
(16) Сравнивать надо отдельным отчетом, что не всегда удобно
(15) попробую.
19 guitar_player
 
29.09.11
08:51
(15) ЭлементыФормы.ПутевкиЧ2.Значение = ДанныеСтроки.Выгрузить();
20 Escander
 
29.09.11
08:53
отчёт о том, что было раньше? А версионирование никаким боком?
21 RedFox
 
29.09.11
08:55
(20) отчёты эти есть, но они не всегда удобны, а так нагляднее для проверяющих.
22 lxs
 
29.09.11
08:59
(16) +1
23 Escander
 
29.09.11
09:46
(21)Хрена себе проверяющие... хотел-бы посмотреть на автора этой идеи... может им сразу технологический журнал с максимальной детализацией логов?

Чисто интересно, а как обрабатываете повторную запись документа если его ТЧ <> ТЧ НомерВерсия-1 и <> ТЧ НомерВерсии-2?
24 Никола_
Питерский
 
29.09.11
09:49
(23) Если мне не изменяет память кол-во ТЧ в документе
может быть сколь угодно ))) Так что у автора все впереди
ТЧ2 - ТЧ3 - ТЧ4 ...
25 RedFox
 
29.09.11
10:25
(23) Главное, чтобы ТЧ2 совпадало с исходными данными. А в ТЧ1 можно резвиться сколько угодно.
26 Escander
 
29.09.11
10:25
(24)живо себе представляю сервис по выбору нужной ТЧ.... и отчёт по сравнению ТЧ88 с ТЧ36
27 Escander
 
29.09.11
10:26
(25)в каком смысле исходные? Исходные - это первое заполнение?
28 RedFox
 
29.09.11
10:32
(27) исходные берутся из справочника
29 hhhh
 
29.09.11
10:35
(28) а вот это что?

ЭлементыФормы.ПутевкиЧ = ДанныеСтроки.Выгрузить();

похоже на бред. Геометрическому квадратику присваиваешь какую-то выгрузку.
30 RedFox
 
29.09.11
10:37
похоже не инициализируется новая строка в ТЧ2.
(29) это уже мои изыскания от отчаяния :) не могу понять, в чём проблема.
31 Escander
 
29.09.11
10:46
(28) не сметную программу переписываете?

про то как в 1 строку переписать из ТЧ1 в ТЧ2 уже писал...
32 hhhh
 
29.09.11
10:47
(30) ну (13) по-любому должно работать. Надо просто проконтролировать, что ТЧ1 и ТЧ2 действительно табЧасти у переменной ДокументОбъект (или ЭтотОбъект).
33 RedFox
 
29.09.11
10:52
Сделал пока через выгрузку результата запроса в левую таблицу значений. Криво конечно, зато исправления в ТЧ1 точно не будут влиять на показания в ТЧ2.
Всем спасибо за помощь!
Программист всегда исправляет последнюю ошибку.