Версия для печати темы (https://pro1c.org.ua/index.php?s=01bfa4b0b2bd767d5df145fddbbda68b&showtopic=7209)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Перенос данных при нажатии "ок"
Автор: ZhenyaYa 28.04.12, 15:07
Ну и главный вопрос)
Есть документ1 в котором кнопочка, при нажатии которой открывается документ2. В документ2 вводим данные, они там суммируются. Нужно чтобы при нажатии "Ок" в документе2, сумма по колонкам(реквизитам) "Вес" и "Количество" перенеслась в колонку "Вес"и колонку "Количество" в документе1. Не подскажете, как это сделать?
Автор: Pepe 28.04.12, 15:24
Можно попробовать через передачу параметров вес и количество при ввызове документа2 из документ1.
Автор: alex040269 28.04.12, 15:32
После нажатия кнопки ок в док2. он запишется. в док1 можно выбрать все, что угодно. Можно использовать ОткрытьФорму() для Док2 и через параметр вернуть все, ято необходимо...
Автор: ZhenyaYa 28.04.12, 15:39
а вы не в курсе, примеры есть где то? а то мне пока тяжеловато это делать без примеров, а на чтение книг просто времени нет
Автор: Vofka 28.04.12, 15:43
Цитата(ZhenyaYa @ 28.04.12, 16:39)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
а на чтение книг просто времени нет
Значит так:
Pepe,
alex040269 быстро читайте книги и приводите автору примеры, потому что ему читать некогда.
Автор: Ziam 28.04.12, 15:43
Эх. Обидно когда бегут на готовенькое и ни капли труда вложить не хотят. Переучивать вас надо, а не халявинкой кормить.
Хотя остальные добрые самаритяне могут мою идею не поддерджать.
Автор: Batchir 28.04.12, 15:46
Цитата(Ziam @ 28.04.12, 16:43)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
Эх. Обидно когда бегут на готовенькое и ни капли труда вложить не хотят. Переучивать вас надо, а не халявинкой кормить.
Хотя остальные добрые самаритяне могут мою идею не поддерджать.
Вот иногда под настроение хочется сделать что то доброе, светлое, но в основном при чтении таких вопросов
Автор: ZhenyaYa 28.04.12, 15:51
Цитата(Vofka @ 28.04.12, 16:43) http://pro1c.org.ua/index.php?act=findpost&pid=49452
Эх. Обидно когда бегут на готовенькое и ни капли труда вложить не хотят. Переучивать вас надо, а не халявинкой кормить.
Хотя остальные добрые самаритяне могут мою идею не поддерджать.
та ё ма ё, вы хоть читаете, что пишут? какая халява? есть две книги по 500ст каждая, которые читаю, но я просто не успею их за два дня перечитать и найти там то что мне нужно! было бы время, я бы не задавал вопросы
Автор: Читатель 28.04.12, 16:38
Цитата(ZhenyaYa @ 28.04.12, 16:51)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
...есть две книги по 500ст каждая, которые читаю, но я просто не успею их за два дня перечитать и найти там то что мне нужно! ...
А найти в этих книгах пару страничек, нужных именно сейчас, не судьба. Надо читать всё. Грустно, конечно.
Автор: ZhenyaYa 28.04.12, 16:57
Цитата(Читатель @ 28.04.12, 17:38)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
А найти в этих книгах пару страничек, нужных именно сейчас, не судьба. Надо читать всё. Грустно, конечно.
я надеюсь вы прикидываетесь
Автор: Читатель 28.04.12, 18:11
Цитата(ZhenyaYa @ 28.04.12, 17:57)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
я надеюсь вы прикидываетесь
Не, прикалываюсь.
Автор: alex040269 28.04.12, 19:05
Цитата(ZhenyaYa @ 28.04.12, 16:51) http://pro1c.org.ua/index.php?act=findpost&pid=49455
я надеюсь вы прикидываетесь
Я же написал
ОткрытьФорму неужели нельзя посмотреть справку в конфигураторе? и задать уже более конкретный вопрос, где затык, что непонятно. На такие вопросы на этом форуме отвечают почти мгновенно и всегда ПРАВИЛЬНО. н6ачинайте трудиться, хватит форумы читать...
Автор: ZhenyaYa 30.04.12, 14:28
В документе2 пишу:
Процедура ПередПар()
Парам = СоздатьОбъект("СписокЗначений");
Парам.ДобавитьЗначение(Вес,"Вес");
ОткрытьФормуМодально("Документ.РеализацияЖивотных", Парам);
КонецПроцедуры
В кнопку "Ок" добавляю формулу ПередПар()
В документе1 пишу в процедуре ПриОткрытии()
Парам=Форма.Параметр;
Если ПустоеЗначение(Парам)=0 Тогда
Вес = Парам.Получить("Вес");
КонецЕсли;
Реакции никакой...ошибок нет и значения "вес" не переносит...
точнее при нажатии "Ок" документ1 открывается, но вес не переносится
Автор: alex040269 30.04.12, 15:48
Я скоприовал Ваш код - все передается. Пройдитесь отладчиком. У Вас точно все вызывается?
Автор: ZhenyaYa 30.04.12, 21:47
Цитата(alex040269 @ 30.04.12, 15:48)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
Я скоприовал Ваш код - все передается. Пройдитесь отладчиком. У Вас точно все вызывается?
а у "вес" в многострочной части или в шапке документа? у меня в многострочной части, может в этом дело?
Автор: Читатель 30.04.12, 22:58
Если нужен итог по колонке "Вес", то
Процедура ПередПар()
Парам = СоздатьОбъект("СписокЗначений");
Парам.ДобавитьЗначение(Итог("Вес"), "Вес");
Автор: alex040269 01.05.12, 8:51
Цитата(ZhenyaYa @ 30.04.12, 22:47)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
а у "вес" в многострочной части или в шапке документа? у меня в многострочной части, может в этом дело?
Это, просто, означает, что дело не в передаче параметров.
Вставте код
Сообщить(вес)
, и посмотрите, что вы передаете и что получаете.
Автор: 5_kopeek 01.05.12, 10:19
Цитата(ZhenyaYa @ 30.04.12, 22:47)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
а у "вес" в многострочной части или в шапке документа? у меня в многострочной части, может в этом дело?
Если Вам нужно заполнить реквизит в многострочной части документа, то перед присваиванием значения нужно спозиционироваться на той строке документа, в которой необходимо установить полученное через параметр значение.
Автор: ZhenyaYa 02.05.12, 11:35
Цитата(alex040269 @ 01.05.12, 8:51)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
Это, просто, означает, что дело не в передаче параметров.
Вставте код
Сообщить(вес)
, и посмотрите, что вы передаете и что получаете.
Парам=Форма.Параметр;
Если ПустоеЗначение(Парам)=0 Тогда
Вес = Парам.Получить("Вес");
Сообщить(Вес);
КонецЕсли;
Получаю "0"
а вот так передает :
Парам=Форма.Параметр;
Если ПустоеЗначение(Парам)=0 Тогда
пВес = Парам.Получить("Вес");
Сообщить(пВес);
КонецЕсли;
Автор: ZhenyaYa 02.05.12, 12:49
Цитата(5_kopeek @ 01.05.12, 10:19)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
Если Вам нужно заполнить реквизит в многострочной части документа, то перед присваиванием значения нужно спозиционироваться на той строке документа, в которой необходимо установить полученное через параметр значение.
это надо делать с помощью ПолучитьСтрокуПоНомеру()?
Автор: Flexy 02.05.12, 13:26
А почему не используете Метод Выгрузить/ЗагрузитьТабличнуюЧасть документа?
Процедура ПередатьПар()
ТабЧасть = СоздатьОбъект("ТаблицаЗначений");
ВыгрузитьТабличнуюЧасть(ТабЧасть,"Вес");
ОткрытьФорму("Документ.РеализацияЖивотных", ТабЧасть);
КонецПроцедуры
//////Документ.РеализацияЖивотных ПриОткрытии()
ТабЧасть=Форма.Параметр;
Если ТабЧасть.КоличествоСтрок()>0 Тогда
ЗагрузитьТабличнуюЧасть(ТабЧасть);
КонецЕсли;
Автор: ZhenyaYa 02.05.12, 14:16
Цитата(Flexy @ 02.05.12, 14:26)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
А почему не используете Метод Выгрузить/ЗагрузитьТабличнуюЧасть документа?
Процедура ПередатьПар()
ТабЧасть = СоздатьОбъект("ТабдицаЗначений");
ВыгрузитьТабличнуюЧасть(ТабЧасть,"Вес");
ОткрытьФорму("Документ.РеализацияЖивотных", ТабЧасть);
КонецПроцедуры
//////Документ.РеализацияЖивотных ПриОткрытии()
ТабЧасть=Форма.Параметр;
Если ТабЧасть.КоличествоСтрок()>0 Тогда
ЗагрузитьТабличнуюЧасть(ТабЧасть);
КонецЕсли;
мне итог "Вес" надо передать в табличную часть в колонку "Вес" . То есть в одном документе вводим там разные значения веса, они суммируются, а потом этот итог передается...А здесь я так понимаю будут передаваться все значения, а не итог?
Автор: Flexy 02.05.12, 14:34
Цитата(ZhenyaYa @ 02.05.12, 14:16)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
мне итог "Вес" надо передать в табличную часть в колонку "Вес" . То есть в одном документе вводим там разные значения веса, они суммируются, а потом этот итог передается...А здесь я так понимаю будут передаваться все значения, а не итог?
Так в чем проблема?
Итог(<?>)
Синтаксис:
Итог(<ИмяРеквизита>)
Назначение:
Возвращает сумму значений реквизита по всем строкам табличной части документа.
Параметры:
<ИмяРеквизита> - имя реквизита табличной части документа.
Замечание:
Метод можно использовать только для реквизитов табличной части документов с установленным свойством 'Итог по колонке'.
Автор: ZhenyaYa 02.05.12, 14:49
Цитата(Flexy @ 02.05.12, 15:34)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
Так в чем проблема?
Итог(<?>)
Синтаксис:
Итог(<ИмяРеквизита>)
Назначение:
Возвращает сумму значений реквизита по всем строкам табличной части документа.
Параметры:
<ИмяРеквизита> - имя реквизита табличной части документа.
Замечание:
Метод можно использовать только для реквизитов табличной части документов с установленным свойством 'Итог по колонке'.
Нус, просто вес переносится, что уже не может не радовать) Но еще раз.
ЗагрузитьТабличнуюЧасть(<ТаблЗнач>)
Параметры:
<ТаблЗнач> Таблица значений, откуда загружается много¬строчная часть документа. Колонки совмещаются по
идентификаторам.
То есть колонка "Вес" загружается в такую же колонку "Вес" ( с таким же идентификатором)? В этом случае Итог("Вес") удастся загрузить в таб.часть и идентификатором "Вес" ?
Автор: Flexy 02.05.12, 14:50
Да и можно просто взять Итог с ТЗ.
ТабЧасть=Форма.Параметр;
Если ТабЧасть.КоличествоСтрок()>0 Тогда
НоваяСтрока()
ИтогоВес = ТабЧасть.Итог("Вес");
КонецЕсли
Автор: ZhenyaYa 02.05.12, 15:10
Цитата(Flexy @ 02.05.12, 15:50)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
Да и можно просто взять Итог с ТЗ.
ТабЧасть=Форма.Параметр;
Если ТабЧасть.КоличествоСтрок()>0 Тогда
НоваяСтрока()
ИтогоВес = ТабЧасть.Итог("Вес");
КонецЕсли
ооо, наконец то получилось) Спасибо вам большое) правда там при "Если ТабЧасть.КоличествоСтрок()>0 Тогда" ошибку бьет, поэтому поменял на "Если ПустоеЗначение(ТабЧасть)=0 Тогда" , а так вродь все отлично)
Автор: Flexy 02.05.12, 15:17
Цитата(ZhenyaYa @ 02.05.12, 15:10)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
ооо, наконец то получилось) Спасибо вам большое) правда там при "Если ТабЧасть.КоличествоСтрок()>0 Тогда" ошибку бьет, поэтому поменял на "Если ПустоеЗначение(ТабЧасть)=0 Тогда" , а так вродь все отлично)
Не за что
![wink.gif](https://pro1c.org.ua/style_emoticons/default/wink.gif)
А что за ошибка?У себя проверил, без ошибок работает.
Автор: ZhenyaYa 02.05.12, 15:29
Цитата(Flexy @ 02.05.12, 16:17)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
Не за что
![wink.gif](https://pro1c.org.ua/style_emoticons/default/wink.gif)
А что за ошибка?У себя проверил, без ошибок работает.
Если ТабЧасть.КоличествоСтрок()>0 Тогда
{Документ.РеализацияЖивотных.Форма.Модуль(724)}: Значение не представляет агрегатный объект (КоличествоСтрок)
Автор: Flexy 02.05.12, 15:33
Цитата(ZhenyaYa @ 02.05.12, 15:29)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
Если ТабЧасть.КоличествоСтрок()>0 Тогда
{Документ.РеализацияЖивотных.Форма.Модуль(724)}: Значение не представляет агрегатный объект (КоличествоСтрок)
А ТабЧасть у вас Таблица значений или Список Значений?
Если список значений:
Если ТабЧасть.РазмерСписка()>0 Тогда...
Автор: ZhenyaYa 02.05.12, 15:36
ТаблицаЗначений
Автор: ZhenyaYa 02.05.12, 17:53
и еще форму надо открывать только модально, по другому з табличной частью работать не получится...при этом открывается маленькое окно, не очень удобно работать, с этим можно как то бороться?
Автор: 5_kopeek 02.05.12, 19:26
Так и не поняла, Вам нужно перенести только итог по колонке вес или значения веса во всех строках? Если только итог, тогда зачем передавать в качестве параметра всю табличную часть? Передавайте только Итог("Вес"). И совсем не обязательно открывать форму в модальном режиме, просто открывайте через ОткрытьФорму().
Автор: ZhenyaYa 03.05.12, 11:50
Цитата(5_kopeek @ 02.05.12, 19:26)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
Так и не поняла, Вам нужно перенести только итог по колонке вес или значения веса во всех строках? Если только итог, тогда зачем передавать в качестве параметра всю табличную часть? Передавайте только Итог("Вес"). И совсем не обязательно открывать форму в модальном режиме, просто открывайте через ОткрытьФорму().
надо перенести итог по колонке "вес" одного документа в табличную часть в колонку "вес" другого документа. через просто ОткрытьФорму() не работает...экспериментировал...если бы итог переносился не в табличную часть, а в шапку, то можно было бы открывать немодально
Автор: mister-x 03.05.12, 12:49
в чому проблема в ОткрытьФормуМодально(<Документ>,<КонтекстФормы>,<РежимПросмотра>)
КонтекстФормы можна передати у відкритий док, що хочеш і назад вертати з того відкритого дока (при закриті), що хочеш (наприклад, куримо обробку Клієнт-банк)
Автор: ZhenyaYa 07.05.12, 15:47
В продолжение темы
Сейчас есть такое : нажимаем на кнопочку в документе 1, открывается документ2 и закрывается документ1 ( так решил проблему открытия формы модально, то есть можно передавать параметры в табличную часть и немодально). вводим значение, нажимаем "ок", открывается документ1 и итоги заносятся в первую строку.
А вот дальше...нужно ввести вторую строку таким же методом, то есть опять нажать на кнопочку. Нажимаем, открывается документ2 , вводим,нажимаем ок и данные передаются в новый документ, что не подходит, так как нужно в старый, в другую строчку...Может кто поможет, чем сможет?
Автор: sercher 10.05.12, 14:47
я вот читал-читал, и не понял а зачем Вам это все нужно? вы новый документ используете только для вычисления или он еще чего делает?
Автор: alex040269 10.05.12, 16:36
Цитата(ZhenyaYa @ 07.05.12, 16:47)
![*](http://pro1c.org.ua/style_images/pro1c/post_snapback.gif)
В продолжение темы
Сейчас есть такое : нажимаем на кнопочку в документе 1, открывается документ2 и закрывается документ1 ( так решил проблему открытия формы модально, то есть можно передавать параметры в табличную часть и немодально). вводим значение, нажимаем "ок", открывается документ1 и итоги заносятся в первую строку.
А вот дальше...нужно ввести вторую строку таким же методом, то есть опять нажать на кнопочку. Нажимаем, открывается документ2 , вводим,нажимаем ок и данные передаются в новый документ, что не подходит, так как нужно в старый, в другую строчку...Может кто поможет, чем сможет?
1) непонятно зачем закрывать документ, если он еще нужен.
2) непонятно почему нельзя перенести все данные одним нажатием. (или у Вас договор с поставщиками клавиатур и мышей???)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua