Имя: Пароль:
1C
1С v8
Скопировать табличную часть
,
0 kolts23381
 
25.10.12
12:20
есть такой код, 1с 8.1. Конечный код будет немного отличаться а этот чтоб понять почему не работает:

тз = новый ТаблицаЗначений;
   тз = Документы.СчетНаОплатуПокупателю.НайтиПоНомеру("00000000227").Товары.Выгрузить();
   ДокументОбъект.Товары.Загрузить(тз);

Находится он в обработчике нажатия кнопки. Мне надо скопировать табличную часть товары с одного документа в другой, а верней из нескольких документов в один. Но хотя бы понять почему этот код не работает. Новые товары не появляются у текущего документа. Может по другому как то сделать?
1 butterbean
 
25.10.12
12:21
что такое ДокументОбъект??
2 mikecool
 
25.10.12
12:21
надо сделать правильно
но - загрузить несколько тз в одну через Загрузить() не получится
3 kolts23381
 
25.10.12
12:24
Документобьект это текущий документ. Разве нет? Видимо я неправильно обращаюсь к нему.
У меня будет цикл.
4 zladenuw
 
25.10.12
12:24
Находится он в обработчике нажатия кнопки.
Просто Товары.Загрузить
5 1Страх
 
25.10.12
12:25
(3) никаких циклов, запрос наше все
6 kolts23381
 
25.10.12
12:37
Это из модуля объекта можно обратиться Товары.Загрузить. А у меня форма. Поэтому в форме есть реквизит ДокументОбъект его значение счетнаоплатуПокупателю. Запрос может напишу но пока не разобрался в них.
7 kolts23381
 
25.10.12
12:41
Вобщем проблема видимо в том что я неправильно обращаюсь к текущему документы. Как это сделать?
8 1Страх
 
25.10.12
12:41
"Это из модуля объекта можно обратиться Товары.Загрузить. А у меня форма. Поэтому в форме есть реквизит ДокументОбъект"

это с чего бы?
9 kolts23381
 
25.10.12
12:43
Ступил значит :) Ну как все таки сделать?
10 zladenuw
 
25.10.12
12:50
(4)
11 kolts23381
 
25.10.12
12:53
Вот сейчас проверил. Из уже существующих форма я могу обращаться к товарам. А я создал новую форму и не могу обратиться к товарам. Как сделать чтоб можно было?
12 ICWiner
 
25.10.12
12:55
рукалицо. Новую форму чего ты создал?
13 ICWiner
 
25.10.12
12:55
И откуда ты создал эту форму? Из обработки отдельной?
14 Михаил Козлов
 
25.10.12
12:56
(0) Как-то сделал 2 примитивных обработки таб. частей:
- "В буфер" - сохранял в настройках ТЧ документа;
- "Из буфера" - из  настроек добавлял в ТЧ документа.
Оказалось востребовано.
15 zladenuw
 
25.10.12
12:59
(11) ты путаешь ТЧ и ТП. а пофигураторе есть кнопка размещение данных. если по простому и там смотришь реквизиты которые есть в объекте и которые ты можешь добавить. или же рисуй свои
16 kolts23381
 
25.10.12
13:08
Обо всем по порядку.
Есть документ СчетеНаоплатуПокупателю
В нем есть формы
ФормаДокумента
ФормаВыбора
и т.д.
Захожу в модуль любой формы. Пишу Тов включается автозаполнение, там есть товары.
Создаю новую форму называю ФормаВыбораСчетов, захожу в модуль
пишу тов и нет там товары. Нету также ссылка и т.д.
Как сделать так чтоб в модуле формы я мог обращаться к данным документа?
Обьяснил по простому потому что вижу меня не поняли.
В 1С я новичок. Имел опыт программирования. Вношу иногда изменения в типовые конфигурации, поэтому некоторые вещи вызывают ступор.
17 Михаил Козлов
 
25.10.12
13:12
Новая форма - форма документа(списка, выбора, произвольная)?
18 zladenuw
 
25.10.12
13:12
в форме выбора есть только документсписок
19 zladenuw
 
25.10.12
13:13
что ты вообще хочешь сделать.
20 Anastasiy
 
25.10.12
13:16
Выборка = Документы.СчетНаОплатуПокупателю;
ОбъектДокумента = Выборка.ПолучитьОбъект();
21 zladenuw
 
25.10.12
13:18
(0) то что ты описал не соответствует (16).

Что именно надо.
Заполнить ТЧ Товары можно примерно так
                                ВЫБРАТЬ
   *
ИЗ
   Документ.ЗаказЗЧ.ТабЗЧ КАК ЗаказЗЧТабЗЧ
ГДЕ
   ЗаказЗЧТабЗЧ.Ссылка.Номер В(&Номер)
   И ЗаказЗЧТабЗЧ.Ссылка.Проведен
22 kolts23381
 
25.10.12
13:24
Форма произвольная. Вот опять я столкнулся с тем что вещь которая мне кажется очевидной и простой в 1С в силу специфики оказывается совсем не понятная. Хочу я сделать заполнение товаров и услуг текущего документа товарами и услугами тех документов которые я выберу.
В идеале два табличных поля. Первое это все документы которые есть. При выборе Документы переходят во второе табличное поле. При этом исчезают из первого. Затем я нажимаю кнопку заполнить и текущий документ заполняется товарами и услугами из выбранных при этом на них ставится пометка удаления.
Для меня каждая строчка кода дается копанием интернетов на несколько часов.
23 zladenuw
 
25.10.12
13:29
(22) ну так в форме документа. добавляешь кнопку. которая будет тебе открывать твою форму. где два ТП.  первое ТП будет твой список документов с условием отбора пометка удаления ложь.
на само тп ставишь событие при выборе. там пишешь примерный запрос с (21). только условие будет ЗаказЗЧТабЗЧ.Ссылка = &ссылка. как то так. но зачем 2 ТП ? если можно просто в свое 1 ТП добавить колонку Отбирать и потом скопом все загрузить в твой документ
24 kolts23381
 
25.10.12
13:51
Задача наполовину то решена. Вся проблема как раз в загрузке.
У меня не получается записать товары В Текущий документ. Я не могу получить на него ссылку из модуля новой формы, вот в чем загвоздка. Я не могу в модуле моей новой формы написать товары.загрузить. Вот в чем мой вопрос. Как получить ссылку на документ из новой формы которую я создал? Остальную часть я более мене решил перерыв интернеты.
25 Шапокляк
 
25.10.12
14:03
О подключаемой обработке заполнения табличных частей не говорили?
по (24) - если у вас кнопка в форме документа, при ее нажатии    ФормаВыбора = Документы.СчетНаОплатуПокупателю.ПолучитьФормуВыбора();
   ФормаВыбора.Заголовок   = "Выберите документ Счет";
   ФормаВыбора.РежимВыбора = Истина;


   НужныйСчет = ФормаВыбора.ОткрытьМодально();
Делайте с полученным счетом и его товарами что вам надо
26 kolts23381
 
25.10.12
14:17
У меня конфигурация управление торговлей 10.3. Там есть возможность заполнять любые документы товарами из других документов. Для этого есть обработка. Но она сволочь не копирует услуги. Пытаюсь сделать сам.
Насчет одной ТП идея хорошая, избавит от дублирования выбранных документов, так и сделаю.
27 hhhh
 
25.10.12
14:37
(26) ну вам нужно передать через параметры значение ДокументОбъект из старой формы в новую.
28 kolts23381
 
25.10.12
14:40
Вот это мне нужно.Вопрос как? В реквизитах формы?
29 vmv
 
25.10.12
14:41
я этот бред уже читало 100500 раз

причина проста - заполняем один экземпляр документобъект, а пялимся в другой.

автору предлагаю разобраться самостоятельно с решением этой тривиальной задачи, ну или расстрелять сразу
30 kolts23381
 
25.10.12
14:42
Пробовал в модуле объекта экспортировать переменную
 Перем СсылкаНаОбъект Экспорт;
 СсылкаНаОбъект = Ссылка;
Но из модуля новой формы она не видна
31 vmv
 
25.10.12
14:44
дам наводку ПолучитьСсылкуНового()

все остальные бредни без учета этого метода при тотал-загрузке чушь профанов
32 hhhh
 
25.10.12
14:44
(30) да, в новой форме специальный реквизит завести.
33 vmv
 
25.10.12
14:46
(32) не учи плохому, а то ведь патронов не жалко)
34 kolts23381
 
25.10.12
14:49
Зачем ссылка нового? Я хочу зайти в уже существующий документ, который я создал давно и в него скопировать товары и услуги из других документов. Неужели это так сложно? Когда форма открыта, можно же узнать к какому документу она относится. Или это так сложно? Я же говорю, в тех формах что были в конфе можно спокойно написать "Ссылка" и делать с текущим документом все что угодно. А из формы которую я создал это не канает. Неужели непонятно что я имею ввиду?
35 Шапокляк
 
25.10.12
14:51
(34) прочитай еще раз (25). Что непонятно? Нажимаешь на кнопку, из формы выбора выбираешь документ и из его ТЧ в свою пишешь что хочешь!
36 vmv
 
25.10.12
14:52
(34)тогда (29)
37 vmv
 
25.10.12
14:55
(34) Если мы говорит "Ссылка", то тут же вторим "я оттуда только читаю". Если мы говорим хочу "пописать, поменять", то тут же вторим "ссылка тут ни причем - это просто идентфикатор в области хранения в СУБД и ей по фик на мое пописать"
38 kolts23381
 
25.10.12
15:04
Шапокляк, не злись я тебя понял. Просто мне надо несколько документов. А так будет только 1
39 Eugene_life
 
25.10.12
15:06
(38) Если ты будешь через "загрузить" делать, то у тебя каждый раз будет таблица перезаписываться, а не добавляться новое. Тебе нужно сделать "буферную" таблицу, туда собрать со всех документов (по ссылкам), и уже буферную - загрузить в документ.
40 vmv
 
25.10.12
15:06
(38) ну так бы сразу и писал

дайте г и еще ложку, что ж ты про ложку не намекнул
41 kolts23381
 
25.10.12
15:09
Все таки дело в реквизите формы. Но когда я создаю он серого цвета. В существующих формах реквизит ДокументОбъект выделен жирным. vmv хватит троллить. Читай тему полностью если тебе интересно, если нет проходи мимо. У меня такое ощущение что мой вопрос слишком сложный? У меня много вопросов, но основной я повторил раза 3. Кто то сказал про реквизит формы.
42 Eugene_life
 
25.10.12
15:11
(41) Как бы сделал я. Цикл по отобранным документам (по их таб частям), и все добавляем в одну таблицу:
ОбщаяТЗ = Новый ТаблицаЗначений;
ОбщаяТЗ.Колонки.Добавить("....");//колонки ТЧ
....
Для Каждого ТекДокумент из СписокДокументов Цикл
 Для Каждого ТекСтрокаТЧ Из ТекДокумент.Товары Цикл
   НоваяСтрока = ОбщаяТЗ.Добавить();
   ЗаполнитьЗначенияСвойств(НоваяСтрока,ТекСтрокаТЧ);
 КонецЦикла;
КонецЦикла;
Товары.Загрузить(ОбщаяТЗ);
как-то так
43 kolts23381
 
25.10.12
15:13
Спасибо всем. Тем кто троллил не спасибо. Но все таки проблему решил сам. Надо сделать чтоб реквизит формы был основным. Что я и сделал.
44 vmv
 
25.10.12
15:14
детектирую у тебя в голове кашу, отсутсвие системного мышления и пробелы в базисных понятиях 1С, ты думаешь при таком неутешительном раскладе еще нужно троллиль?

я считаю нужно приглашать палачей пока у тебя не вошло в привычку решать все проблемы на форумах, тогда как адекватные специалисты решают из путем добычи знаний в книгах и рабочем софте
45 hhhh
 
25.10.12
15:16
(43) да не нужно основным. Для вашей задачи абсолютно по фигу, жирный он там будет или не жирный. Вы пишете ДокументОбъект просто, а если жирный, то можете опускать это слово.
46 vmv
 
25.10.12
15:18
45. за такой тупизм как в этой ветке нужно опускать не только это слово
47 vmv
 
25.10.12
15:20
я был прав - писало в один, пялилось в другой и оно еще бухтело, шо я трлолль, лучше бы подумало галавешкой, мдя - одни расстройства!
48 hhhh
 
25.10.12
15:24
(47) а почему это плохое? - это же элементарная Обработка заполнения табличной части, как во всех типовых, и там тоже передается документ объект. Просто автор не читает книг и лепит свой велосипед, из пластилина, ну это уже его проблемы.
49 kolts23381
 
25.10.12
16:04
(29) vmv ты среднего рода? Может ты уже кому то насолил и теперь вместо мужского рода в твоих сообщениях ставится средний? Но я не держу на тебя зла. Предлагаю мир.

Что касается темы. Я хочу объединить несколько документов в один. Я начал это делать до какого то момента получалось затем возник вопрос, перерыл интернеты и ответа не нашел. Я не просил сделать всю работу за меня а задал один маленький простой вопрос.
Хорошо, как объединить несколько документов в один. Может есть готовые обработки?
Или в управлении торговлей встроенный механизм?
С 1с имею дело редко, но это не мешает мне делать кое-какие изменения в конфе.
50 vmv
 
25.10.12
16:12
(49)

ДокукоментОбъектОбщий.ТчКолста.Загрузить(Запрос.Выполнить().Выгрузить());

как видишь в одну строку, а сваять запрос в отношении "многие-в-один" может даже чудовище - оно такое)
Закон Брукера: Даже маленькая практика стоит большой теории.