Имя: Пароль:
1C
1С v8
Из обработки заполнения сделать кнопку
,
0 RomakON
 
05.07.17
12:23
Добрый день, Мистяне!
Подскажите пожалуйста, возможно ли сделать кнопку из Обработки Заполнения, которая заполняет данные из документа "Заказ Грузоотправителя" в документ "Товарно-транспортный документ" ?

Код:
Процедура ОбработкаЗаполнения (ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.уатЗаказГрузоотправителя") Тогда
        // Заполнение шапки
        Для Каждого ТекСтрокаУслуги Из ДанныеЗаполнения.Услуги Цикл
            НоваяСтрока = Стоимость.Добавить();
            НоваяСтрока.Количество = ТекСтрокаУслуги.Количество;
            НоваяСтрока.НоменклатураУслуги = ТекСтрокаУслуги.Номенклатура;
            НоваяСтрока.Номенклатура = ТекСтрокаУслуги.Номенклатура;
            НоваяСтрока.СтавкаНДС = ТекСтрокаУслуги.СтавкаНДС;
            НоваяСтрока.Сумма = ТекСтрокаУслуги.Сумма;
            НоваяСтрока.СуммаНДС = ТекСтрокаУслуги.СуммаНДС;
            НоваяСтрока.Цена = ТекСтрокаУслуги.Цена;
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры
5 RomakON
 
05.07.17
12:34
(2) Подскажите пожалуйста, куда нужно добавить эту строчку?
6 RomakON
 
05.07.17
12:35
(4) А что с ней не так? Что исправить?
7 igorPetrov
 
05.07.17
12:37
(5) Радченко.
8 Адинэснег
 
05.07.17
12:37
(7)или основы УФ или как там её
9 igorPetrov
 
05.07.17
12:38
(8) я бы сказал "И" основы УФ
10 RomakON
 
05.07.17
12:38
(7) А если обойтись без книг, и помочь в решении задачи?
11 Адинэснег
 
05.07.17
12:39
щас скажут "вызвать программиста"
12 igorPetrov
 
05.07.17
12:39
Вызови программиста
13 igorPetrov
 
05.07.17
12:40
(10) без книг в нашем деле нельзя
14 Адинэснег
 
05.07.17
12:40
скопируй код обработки в команду кнопки и не парь себе мозг
15 RomakON
 
05.07.17
12:42
/вызываю программиста в эту тему/
(14)
Процедура ЗаполнитьНаОснованииЗаказаТС(Команда,ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.уатЗаказГрузоотправителя") Тогда
        // Заполнение шапки

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


Это все?
16 igorPetrov
 
05.07.17
12:43
(14) Щас скопирует
17 igorPetrov
 
05.07.17
12:43
(15) Не в эту тему, а к себе на работу и денюжку ему заплатите.
18 Адинэснег
 
05.07.17
12:44
(15) вжух вжух, работает
19 RomakON
 
05.07.17
12:45
(18) Переменная не определена (Стоимость)
20 igorPetrov
 
05.07.17
12:45
(19) Что это значит?
21 Адинэснег
 
05.07.17
12:46
науя тебе что то вызывать?
при вводе на основании она, итак выполняется (обработка заполнения)
22 Адинэснег
 
05.07.17
12:46
что такое Стоимость в контексте твоего модуля?
23 Адинэснег
 
05.07.17
12:46
а нахуя ты у ней обращаешься тогда?
24 RomakON
 
05.07.17
12:47
(20)Ошибка вот этой процедуры
Процедура ЗаполнитьНаОснованииЗаказаТС(Команда,ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.уатЗаказГрузоотправителя") Тогда
        // Заполнение шапки


        Для Каждого ТекСтрокаУслуги Из ДанныеЗаполнения.Услуги Цикл
            НоваяСтрока = Стоимость.Добавить();
            НоваяСтрока.Количество = ТекСтрокаУслуги.Количество;
            НоваяСтрока.НоменклатураУслуги = ТекСтрокаУслуги.Номенклатура;
            НоваяСтрока.Номенклатура = ТекСтрокаУслуги.Номенклатура;
            НоваяСтрока.СтавкаНДС = ТекСтрокаУслуги.СтавкаНДС;
            НоваяСтрока.Сумма = ТекСтрокаУслуги.Сумма;
            НоваяСтрока.СуммаНДС = ТекСтрокаУслуги.СуммаНДС;
            НоваяСтрока.Цена = ТекСтрокаУслуги.Цена;
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры
25 Адинэснег
 
05.07.17
12:47
Получи/создай объект, и обращайся к табчасти этого объекта, а не к неопределенной переменной
26 igorPetrov
 
05.07.17
12:48
(24) Что значит - "Переменная не определена (Стоимость)"?
27 igorPetrov
 
05.07.17
12:48
(25) Погодь, не торопись.
28 igorPetrov
 
05.07.17
12:50
(25) Он уже третий раз один и тот же код сюда вставляет, это ты в (14) насоветовал )
29 RomakON
 
05.07.17
12:51
(26) {Документ.уатТТД.Форма.ФормаДокумента.Форма(1591,18)}: Переменная не определена (Стоимость)
            НоваяСтрока = <<?>>Стоимость.Добавить(); (Проверка: Тонкий клиент)
30 volfy
 
05.07.17
12:53
Ну может всё таки "Объект." ?) Не?)
31 igorPetrov
 
05.07.17
12:53
(29) Что это означает? Что эта ошибка означает? Зачем ты мне код показываешь?
32 RomakON
 
05.07.17
12:53
(21) Необходимо создать кнопку, которая будет заполнять таб.часть документа ТТД на вкладке Стоимость, а данные заполнения необходимо взять из документа ЗаказГрузоотправителя
33 igorPetrov
 
05.07.17
12:54
(32) Ты там кто на работе?
34 h-sp
 
05.07.17
12:55
(32) ну нет там у тебя такого слова "Стоимость", а ты его всё липишь и лепишь.
35 RomakON
 
05.07.17
12:56
(34) Как нету? а как же
НоваяСтрока = Стоимость.Добавить();
36 Адинэснег
 
05.07.17
12:57
код обработки (!) в команду кнопки (не в форум)
37 RomakON
 
05.07.17
12:57
(30) Подскажите пожалуйста, что исправить нужно в моем коде?
38 Адинэснег
 
05.07.17
12:57
что такое Стоимость?
39 Адинэснег
 
05.07.17
12:58
(37) ДНК писателя
40 Адинэснег
 
05.07.17
12:58
ты создать новый документ хочешь?
41 volfy
 
05.07.17
12:59
(38) ну понятно что ТЧ =) (37)   объект передай
42 RomakON
 
05.07.17
13:00
(38) Стоимость это вкладка в документе ТТД
http://forum.infostart.ru/upload/forum/upload/2a3/2a37f9cb1e7a1520a341a672ab8c9690
43 Адинэснег
 
05.07.17
13:01
ты стоимость существующего документа хочешь заполнить или нового?
44 RomakON
 
05.07.17
13:01
(39) Как грубо...
45 Адинэснег
 
05.07.17
13:01
ДокументМенеджер.<Имя документа> (DocumentManager.<Имя документа>)
СоздатьДокумент (CreateDocument)
Синтаксис:

СоздатьДокумент()
Возвращаемое значение:

Тип: ДокументОбъект.<Имя документа>.

Описание:

Создает новый документ.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Пример:

// создание нового документа РасходнаяНакладная

НовДок = Документы.РасходнаяНакладная.СоздатьДокумент();
46 RomakON
 
05.07.17
13:02
(43) Стоимость существующего документа(ТТД), на основании связанного с ним документа ЗаказГрузоотправителя
47 Адинэснег
 
05.07.17
13:03
(46) ну так сначала найди ссылку на него, получи объект
и потом обрабатывай
48 Адинэснег
 
05.07.17
13:05
(47) на основании документа может быть введено милион документов, в том числе и те, где нет никакой табличной части "Стоимость"
49 Адинэснег
 
05.07.17
13:06
как программа поймет, какой документ ты хочешь заполнять из миллиона введеных на основании? она даже тип не определит, не то что ссылку
50 RomakON
 
05.07.17
13:06
(41) (47) А разве это не ссылка?
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.уатЗаказГрузоотправителя") Тогда
Подскажите пожалуйста








(31) Чего затих?
51 h-sp
 
05.07.17
13:06
(46) Стоимость чего-то надо писать. А ты пишешь просто Стоимость. Это стоимость облаков каких-то? или фаз Луны?
52 Лефмихалыч
 
05.07.17
13:08
где-то в интернете уже должно быть порно про вызов метода Заполнить() программно - уж больно тема популярная...
53 Адинэснег
 
05.07.17
13:09
(52) тут еще хуже, дурацкая одинэс пишет переменная неопределена, в какую строку бы мы её не вставляли
54 RomakON
 
05.07.17
13:10
(51) Это код скопированный с Обработки Заполнения.
В данном случае, Стоимость подразумевается как вкладка в документе ТТД
http://forum.infostart.ru/upload/forum/upload/2a3/2a37f9cb1e7a1520a341a672ab8c9690
Или я что то не понимаю...?
55 h-sp
 
05.07.17
13:11
(54) обработкаЗаполнения находится в модуле объекта. Ели вдруг забыл.
56 RomakON
 
05.07.17
13:12
(53) А никто и не говорит что "одинэс" дурацкая, возникает ошибка, с которой не могу справиться, вот и пришел к вам, Мистяне.
57 Лефмихалыч
 
05.07.17
13:13
(54) пробуй думать головным мозгом, а не спинным
58 Лефмихалыч
 
05.07.17
13:14
59 Лефмихалыч
 
05.07.17
13:17
(56) код писать надо, а не копе-пасте
60 RomakON
 
05.07.17
13:19
(55) Да, это так.
Вопрос в следующем, создается с помощью Конструктора ввода на основании ОбработкаЗаполнения
Вот код:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.уатЗаказГрузоотправителя") Тогда
        // Заполнение шапки
        Для Каждого ТекСтрокаУслуги Из ДанныеЗаполнения.Услуги Цикл
            НоваяСтрока = Стоимость.Добавить();
            НоваяСтрока.Количество = ТекСтрокаУслуги.Количество;
            НоваяСтрока.НоменклатураУслуги = ТекСтрокаУслуги.Номенклатура;
            НоваяСтрока.Номенклатура = ТекСтрокаУслуги.Номенклатура;
            НоваяСтрока.СтавкаНДС = ТекСтрокаУслуги.СтавкаНДС;
            НоваяСтрока.Сумма = ТекСтрокаУслуги.Сумма;
            НоваяСтрока.СуммаНДС = ТекСтрокаУслуги.СуммаНДС;
            НоваяСтрока.Цена = ТекСтрокаУслуги.Цена;
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры

, она копируется в процедуру "Кнопки"
Процедура ЗаполнитьНаОснованииЗаказаТС(Команда,ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.уатЗаказГрузоотправителя") Тогда
        // Заполнение шапки
        Для Каждого ТекСтрокаУслуги Из ДанныеЗаполнения.Услуги Цикл
            НоваяСтрока = Стоимость.Добавить();
            НоваяСтрока.Количество = ТекСтрокаУслуги.Количество;
            НоваяСтрока.НоменклатураУслуги = ТекСтрокаУслуги.Номенклатура;
            НоваяСтрока.Номенклатура = ТекСтрокаУслуги.Номенклатура;
            НоваяСтрока.СтавкаНДС = ТекСтрокаУслуги.СтавкаНДС;
            НоваяСтрока.Сумма = ТекСтрокаУслуги.Сумма;
            НоваяСтрока.СуммаНДС = ТекСтрокаУслуги.СуммаНДС;
            НоваяСтрока.Цена = ТекСтрокаУслуги.Цена;
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры

А вот что дальше делать не понимаю, наставьте на путь истиный

(57) Не смешно, плохая шутка.
61 Лефмихалыч
 
05.07.17
13:21
а зачем "она копируется в процедуру "Кнопки" "?
62 Лефмихалыч
 
05.07.17
13:23
+(61) кто тебя этому научил? плюнь ему в лицо, он - глуПЕЦ!111
63 RomakON
 
05.07.17
13:25
(61) Значит у меня не правильный ход мыслей и логика решения задачи.
Подскажите пожалуйста, возможно ли решить мою задачу используя данные из ОбработкиЗаполнения?
64 Адинэснег
 
05.07.17
13:25
(56) одинэс подсказывает тебе на самом православном языке, что в твоем модуле неопределена переменная
Это обозначает, что эта переменная не была объявлена, но к ней ты пытаешься обратиться как к переменной
Так вот когда одинэс тебе, сказала что переменная "Стоимость" не определена, нужно задуматься, о том, что где ты делал "копи", эта переменная определена и ней можно оперировать, а там где "пасте" её нет.
65 Любопытная
 
05.07.17
13:25
(60) Давай сначала: у тебя есть открытая форма документа, на которую ты повесил кнопку, которая должна заполнить ТЧ этого документа по какому-то основанию, так?
66 Адинэснег
 
05.07.17
13:26
возьми тестовую
67 RomakON
 
05.07.17
13:26
(64) Спасибо, на счет этого понятно :)
68 Любопытная
 
05.07.17
13:26
(63) почему именно так ты хочешь решить эту задачу?
69 RomakON
 
05.07.17
13:29
(68) А каким образом ещё её можно решить, запросом? И как бы Вы решили эту задачу?
70 Лефмихалыч
 
05.07.17
13:29
Короче, автор, код заполнения оставь в модуле объекта. Он вроде правильный, на сколько можно судить отсюда.

В форме должно быть две прроцедуры:
1. &НаСервере
Процедура ЗаполнитьПоЧомТыТамХотел(ЧтоТыТамХотел)
   ДокументОбъект = РеквизитФормыВЗначение("Объект");
   ДокументОбъект.Заполнить(ЧтоТыТамХотел);
   ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
КонецПроцедуры

&НаКлиенте
Процедура АВотЭтаШтукаВызываетсяКнопкой(Элемент)
   ЗаполнитьПоЧомТытамХотел(ЧтоТыТамХотел);
71 Адинэснег
 
05.07.17
13:31
(70) ЧтоТыТамХотел переменная неопределена
72 Лефмихалыч
 
05.07.17
13:31
вангую, самая большая непонятка будет с буквосочетанием ЧтоТыТамХотел.
Ведь это - единственное, что надо понимать. Остальное можно просто скопипастить.
73 Лефмихалыч
 
05.07.17
13:32
(71) мне чо, и пирожные за него теперь кушать?
74 RomakON
 
05.07.17
13:32
(68) Данные отсюда
http://forum.infostart.ru/upload/forum/upload/edd/edd85c2878600a52ceb5f338efb8947c
Вот сюда, по кнопке Заполнить данные по заказу
http://forum.infostart.ru/upload/forum/upload/2a3/2a37f9cb1e7a1520a341a672ab8c9690
75 Лефмихалыч
 
05.07.17
13:33
ладно, я поел и добрый через это.
Автор, в переменную ЧтоТыТамХотел тебе надо каким угодно доступным тебе способом поместить значение, которое потом прибет в обработку заполнения. То есть, на основании чего, ты будешь заполнять
76 Адинэснег
 
05.07.17
13:33
ЯПростоХотелЧтобЗаМеняРешилиЗадачуВторойДеньЗарплатуЗаНеёПолучаюАРезультатаВсёНет
77 Лефмихалыч
 
05.07.17
13:34
(76)
78 Любопытная
 
05.07.17
13:35
(74) и как эти два скрина связаны между собой?
Господи, опять они думать не хотят от слова "совсем"
79 Лефмихалыч
 
05.07.17
13:35
(78) хотят. Но это просто не вложено на старте было в прошивку
80 RomakON
 
05.07.17
13:35
(75) Спасибо за подсказку, благодарю!
https://im0-tub-ru.yandex.net/i?id=e41eb714b8f99badd96b0ade0d4fc69d-l&n=13
81 Лефмихалыч
 
05.07.17
13:35
а в школе учили только соображать и запоминать вместо того, чтобы думать и понимать
82 Лефмихалыч
 
05.07.17
13:36
(80) но, ведь не помогло же все равно, так ведь? Кого ты обманываешь...
83 RomakON
 
05.07.17
13:37
(82) Я ещё не пробовал :)
84 Любопытная
 
05.07.17
13:37
(83) Ахахаха)))
85 Лефмихалыч
 
05.07.17
13:38
ПФФФфаахахахаха
86 Адинэснег
 
05.07.17
13:40
(85) он пока на мисте программирует, в конфигураторе еще не пробовал
87 Адинэснег
 
05.07.17
13:41
+(86) нажал F5, 1С в отладке не запустилась, а страничка зачем-то перезагрузилась
88 RomakON
 
05.07.17
13:44
(78) Что значит
"и как эти два скрина связаны между собой? Господи, опять они думать не хотят от слова "совсем""?
Если "подумать", то вот как связь документов устроена
[img]http://s019.radikal.ru/i622/1707/bf/5197ccfe0f0b.jpg[/img]
89 RomakON
 
05.07.17
13:44
90 Любопытная
 
05.07.17
13:45
(89) и что ты мне пытаешься этим доказать? Что ты умеешь думать? Если бы умел, давно бы сам заполнение свое сделал
91 RomakON
 
05.07.17
13:46
(90) Я ответил на Ваш вопрос,
"и как эти два скрина связаны между собой?"
92 Адинэснег
 
05.07.17
13:47
(89) ты заканчивай программировать в режиме предприятия
посмотри через какой реквизит структура подчиненности строится (для этого рекомендую Конфигуратор все таки запустить, или хотя бы консоль запросов)
93 Лефмихалыч
 
05.07.17
13:48
(88) ты... это... выёживаться имеет смысл начинать только, когда тебе все без исключения слова понятны, а не как в твоем случае.
94 Любопытная
 
05.07.17
13:52
(91) Ну согласитесь, что на Ваших первых скринах не было видно взаимосвязи между двумя документами?
95 Любопытная
 
05.07.17
13:54
Что, блин, сложного в задаче, я не понимаю?
Сейчас опять будет традиционное нытье про "вы тоже не сразу такими умными были" и прочая подобная ересь...
96 Лефмихалыч
 
05.07.17
13:54
(94) да какая в крен разница? Эта взаимосвязь к задаче ни какого отношения не имеет. Ну, есть она и есть, дальше-то что?.. А ни чего.
97 ColonelAp4u
 
05.07.17
13:55
(91) Если ты в кнопку переносишь ОбработкуЗаполнения тогда создай в ней документ в начале, а потом только пиши НовДокумент.Стомость.Добавить
98 Лефмихалыч
 
05.07.17
13:55
(95) управляемые формы сложные по началу. В разделении на клиент и сервер нет ни какой интуитивной понятности для людей, которые "выросли" на коде, выполняемом только на клиенте.
99 ColonelAp4u
 
05.07.17
13:55
(97) Иначе стоимость не определена так как ее в данном доке нету. А это ТЧ другого дока
100 Любопытная
 
05.07.17
13:56
(98) Да не в управляемых дело! ТС споткнулся на том, что не понимает почему переменная Стоимость неопределена. И не может понять почему она неопределена. Это, простите, совсем наив какой-то
101 Лефмихалыч
 
05.07.17
13:57
(100) если бы формы были не управляемые, у него была бы эта переменная.
ой, всё, блин! Скучно!
102 Любопытная
 
05.07.17
13:58
(97) Зачем создавать новый документ, если он сидит в форме документа и пытается его заполнить на основании другого?
103 RomakON
 
05.07.17
13:59
Спасибо за ответы! Стало понятнее, буду разбираться! (93) (92) (94) Может я слишком грубо на Вас "наехал" в этом (88) сообщении, прошу прощения.
А если "подумать" то Заказ Грузоотправителя является главным документом, с него начинается заполнение всех остальных документов (Маршрутный лист, путевой лист, ттд.....)
(100) На самом деле, сначала не понял, но потом дошло...
104 Лефмихалыч
 
05.07.17
14:01
(103) если тебе открытый документ надо заполнить на основании другого, то используй мой код. А если - наборот, то тогда (97)