Версия для печати темы (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) *
а на чтение книг просто времени нет

Значит так: Pepe, alex040269 быстро читайте книги и приводите автору примеры, потому что ему читать некогда. 32541510.gif

Автор: Ziam 28.04.12, 15:43

Эх. Обидно когда бегут на готовенькое и ни капли труда вложить не хотят. Переучивать вас надо, а не халявинкой кормить.
Хотя остальные добрые самаритяне могут мою идею не поддерджать.

Автор: Batchir 28.04.12, 15:46

Цитата(Ziam @ 28.04.12, 16:43) *
Эх. Обидно когда бегут на готовенькое и ни капли труда вложить не хотят. Переучивать вас надо, а не халявинкой кормить.
Хотя остальные добрые самаритяне могут мою идею не поддерджать.

Вот иногда под настроение хочется сделать что то доброе, светлое, но в основном при чтении таких вопросов icon_cuss.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) *
...есть две книги по 500ст каждая, которые читаю, но я просто не успею их за два дня перечитать и найти там то что мне нужно! ...

А найти в этих книгах пару страничек, нужных именно сейчас, не судьба. Надо читать всё. Грустно, конечно.

Автор: ZhenyaYa 28.04.12, 16:57

Цитата(Читатель @ 28.04.12, 17:38) *
А найти в этих книгах пару страничек, нужных именно сейчас, не судьба. Надо читать всё. Грустно, конечно.

я надеюсь вы прикидываетесь

Автор: Читатель 28.04.12, 18:11

Цитата(ZhenyaYa @ 28.04.12, 17:57) *
я надеюсь вы прикидываетесь

Не, прикалываюсь.

Автор: 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) *
Я скоприовал Ваш код - все передается. Пройдитесь отладчиком. У Вас точно все вызывается?

а у "вес" в многострочной части или в шапке документа? у меня в многострочной части, может в этом дело?

Автор: Читатель 30.04.12, 22:58

Если нужен итог по колонке "Вес", то

Процедура ПередПар()
Парам = СоздатьОбъект("СписокЗначений");
Парам.ДобавитьЗначение(Итог("Вес"), "Вес");


Автор: alex040269 01.05.12, 8:51

Цитата(ZhenyaYa @ 30.04.12, 22:47) *
а у "вес" в многострочной части или в шапке документа? у меня в многострочной части, может в этом дело?

Это, просто, означает, что дело не в передаче параметров.

Вставте код
Сообщить(вес)
, и посмотрите, что вы передаете и что получаете.

Автор: 5_kopeek 01.05.12, 10:19

Цитата(ZhenyaYa @ 30.04.12, 22:47) *
а у "вес" в многострочной части или в шапке документа? у меня в многострочной части, может в этом дело?

Если Вам нужно заполнить реквизит в многострочной части документа, то перед присваиванием значения нужно спозиционироваться на той строке документа, в которой необходимо установить полученное через параметр значение.

Автор: ZhenyaYa 02.05.12, 11:35

Цитата(alex040269 @ 01.05.12, 8:51) *
Это, просто, означает, что дело не в передаче параметров.

Вставте код
Сообщить(вес)
, и посмотрите, что вы передаете и что получаете.


Парам=Форма.Параметр;
Если ПустоеЗначение(Парам)=0 Тогда
   Вес = Парам.Получить("Вес");
   Сообщить(Вес);
КонецЕсли;


Получаю "0"

а вот так передает :

Парам=Форма.Параметр;
Если ПустоеЗначение(Парам)=0 Тогда
   пВес = Парам.Получить("Вес");
   Сообщить(пВес);
КонецЕсли;


Автор: ZhenyaYa 02.05.12, 12:49

Цитата(5_kopeek @ 01.05.12, 10:19) *
Если Вам нужно заполнить реквизит в многострочной части документа, то перед присваиванием значения нужно спозиционироваться на той строке документа, в которой необходимо установить полученное через параметр значение.


это надо делать с помощью ПолучитьСтрокуПоНомеру()?


Автор: Flexy 02.05.12, 13:26

А почему не используете Метод Выгрузить/ЗагрузитьТабличнуюЧасть документа?

Процедура ПередатьПар()
      
    ТабЧасть = СоздатьОбъект("ТаблицаЗначений");
    
    ВыгрузитьТабличнуюЧасть(ТабЧасть,"Вес");

        ОткрытьФорму("Документ.РеализацияЖивотных", ТабЧасть);

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



//////Документ.РеализацияЖивотных ПриОткрытии()

ТабЧасть=Форма.Параметр;

Если ТабЧасть.КоличествоСтрок()>0 Тогда
ЗагрузитьТабличнуюЧасть(ТабЧасть);
КонецЕсли;

Автор: ZhenyaYa 02.05.12, 14:16

Цитата(Flexy @ 02.05.12, 14:26) *
А почему не используете Метод Выгрузить/ЗагрузитьТабличнуюЧасть документа?

Процедура ПередатьПар()
      
    ТабЧасть = СоздатьОбъект("ТабдицаЗначений");
    
    ВыгрузитьТабличнуюЧасть(ТабЧасть,"Вес");

        ОткрытьФорму("Документ.РеализацияЖивотных", ТабЧасть);

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



//////Документ.РеализацияЖивотных ПриОткрытии()

ТабЧасть=Форма.Параметр;

Если ТабЧасть.КоличествоСтрок()>0 Тогда
ЗагрузитьТабличнуюЧасть(ТабЧасть);
КонецЕсли;


мне итог "Вес" надо передать в табличную часть в колонку "Вес" . То есть в одном документе вводим там разные значения веса, они суммируются, а потом этот итог передается...А здесь я так понимаю будут передаваться все значения, а не итог?

Автор: Flexy 02.05.12, 14:34

Цитата(ZhenyaYa @ 02.05.12, 14:16) *
мне итог "Вес" надо передать в табличную часть в колонку "Вес" . То есть в одном документе вводим там разные значения веса, они суммируются, а потом этот итог передается...А здесь я так понимаю будут передаваться все значения, а не итог?

Так в чем проблема?

Итог(<?>)
Синтаксис:
Итог(<ИмяРеквизита>)
Назначение:
Возвращает сумму значений реквизита по всем строкам табличной части документа.
Параметры:
<ИмяРеквизита> - имя реквизита табличной части документа.
Замечание:
Метод можно использовать только для реквизитов табличной части документов с установленным свойством 'Итог по колонке'.

Автор: ZhenyaYa 02.05.12, 14:49

Цитата(Flexy @ 02.05.12, 15:34) *
Так в чем проблема?

Итог(<?>)
Синтаксис:
Итог(<ИмяРеквизита>)
Назначение:
Возвращает сумму значений реквизита по всем строкам табличной части документа.
Параметры:
<ИмяРеквизита> - имя реквизита табличной части документа.
Замечание:
Метод можно использовать только для реквизитов табличной части документов с установленным свойством 'Итог по колонке'.



Нус, просто вес переносится, что уже не может не радовать) Но еще раз.
ЗагрузитьТабличнуюЧасть(<ТаблЗнач>)
Параметры:
<ТаблЗнач> Таблица значений, откуда загружается много¬строчная часть документа. Колонки совмещаются по идентификаторам.
То есть колонка "Вес" загружается в такую же колонку "Вес" ( с таким же идентификатором)? В этом случае Итог("Вес") удастся загрузить в таб.часть и идентификатором "Вес" ?

Автор: Flexy 02.05.12, 14:50

Да и можно просто взять Итог с ТЗ.

ТабЧасть=Форма.Параметр;

Если ТабЧасть.КоличествоСтрок()>0 Тогда

НоваяСтрока()
ИтогоВес = ТабЧасть.Итог("Вес");
КонецЕсли

Автор: ZhenyaYa 02.05.12, 15:10

Цитата(Flexy @ 02.05.12, 15:50) *
Да и можно просто взять Итог с ТЗ.
ТабЧасть=Форма.Параметр;

Если ТабЧасть.КоличествоСтрок()>0 Тогда

НоваяСтрока()
ИтогоВес = ТабЧасть.Итог("Вес");
КонецЕсли


ооо, наконец то получилось) Спасибо вам большое) правда там при "Если ТабЧасть.КоличествоСтрок()>0 Тогда" ошибку бьет, поэтому поменял на "Если ПустоеЗначение(ТабЧасть)=0 Тогда" , а так вродь все отлично)

Автор: Flexy 02.05.12, 15:17

Цитата(ZhenyaYa @ 02.05.12, 15:10) *
ооо, наконец то получилось) Спасибо вам большое) правда там при "Если ТабЧасть.КоличествоСтрок()>0 Тогда" ошибку бьет, поэтому поменял на "Если ПустоеЗначение(ТабЧасть)=0 Тогда" , а так вродь все отлично)

Не за что wink.gif
А что за ошибка?У себя проверил, без ошибок работает.

Автор: ZhenyaYa 02.05.12, 15:29

Цитата(Flexy @ 02.05.12, 16:17) *
Не за что wink.gif
А что за ошибка?У себя проверил, без ошибок работает.


Если ТабЧасть.КоличествоСтрок()>0 Тогда
{Документ.РеализацияЖивотных.Форма.Модуль(724)}: Значение не представляет агрегатный объект (КоличествоСтрок)

Автор: Flexy 02.05.12, 15:33

Цитата(ZhenyaYa @ 02.05.12, 15:29) *
Если ТабЧасть.КоличествоСтрок()>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) *
Так и не поняла, Вам нужно перенести только итог по колонке вес или значения веса во всех строках? Если только итог, тогда зачем передавать в качестве параметра всю табличную часть? Передавайте только Итог("Вес"). И совсем не обязательно открывать форму в модальном режиме, просто открывайте через ОткрытьФорму().


надо перенести итог по колонке "вес" одного документа в табличную часть в колонку "вес" другого документа. через просто ОткрытьФорму() не работает...экспериментировал...если бы итог переносился не в табличную часть, а в шапку, то можно было бы открывать немодально

Автор: mister-x 03.05.12, 12:49

в чому проблема в ОткрытьФормуМодально(<Документ>,<КонтекстФормы>,<РежимПросмотра>)
КонтекстФормы можна передати у відкритий док, що хочеш і назад вертати з того відкритого дока (при закриті), що хочеш (наприклад, куримо обробку Клієнт-банк)

Автор: ZhenyaYa 07.05.12, 15:47

В продолжение темы smile.gif
Сейчас есть такое : нажимаем на кнопочку в документе 1, открывается документ2 и закрывается документ1 ( так решил проблему открытия формы модально, то есть можно передавать параметры в табличную часть и немодально). вводим значение, нажимаем "ок", открывается документ1 и итоги заносятся в первую строку.
А вот дальше...нужно ввести вторую строку таким же методом, то есть опять нажать на кнопочку. Нажимаем, открывается документ2 , вводим,нажимаем ок и данные передаются в новый документ, что не подходит, так как нужно в старый, в другую строчку...Может кто поможет, чем сможет?

Автор: sercher 10.05.12, 14:47

я вот читал-читал, и не понял а зачем Вам это все нужно? вы новый документ используете только для вычисления или он еще чего делает?

Автор: alex040269 10.05.12, 16:36

Цитата(ZhenyaYa @ 07.05.12, 16:47) *
В продолжение темы smile.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