Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перенос данных при нажатии "ок"
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
ZhenyaYa
Ну и главный вопрос)
Есть документ1 в котором кнопочка, при нажатии которой открывается документ2. В документ2 вводим данные, они там суммируются. Нужно чтобы при нажатии "Ок" в документе2, сумма по колонкам(реквизитам) "Вес" и "Количество" перенеслась в колонку "Вес"и колонку "Количество" в документе1. Не подскажете, как это сделать?
Pepe
Можно попробовать через передачу параметров вес и количество при ввызове документа2 из документ1.
alex040269
После нажатия кнопки ок в док2. он запишется. в док1 можно выбрать все, что угодно. Можно использовать ОткрытьФорму() для Док2 и через параметр вернуть все, ято необходимо...
ZhenyaYa
а вы не в курсе, примеры есть где то? а то мне пока тяжеловато это делать без примеров, а на чтение книг просто времени нет
Vofka
Цитата(ZhenyaYa @ 28.04.12, 16:39) необходимо зарегистрироваться для просмотра ссылки
а на чтение книг просто времени нет

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

Вот иногда под настроение хочется сделать что то доброе, светлое, но в основном при чтении таких вопросов icon_cuss.gif
ZhenyaYa
Цитата(Vofka @ 28.04.12, 16:43) необходимо зарегистрироваться для просмотра ссылки
Значит так: Pepe, alex040269 быстро читайте книги и приводите автору примеры, потому что ему читать некогда. 32541510.gif


та не надо утрировать!!! возможно у люди уже встречались с такой ситуацией где то, и скинут ссылку или скажут где прочитать, я же не говорил им писать мне модуль!

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


та ё ма ё, вы хоть читаете, что пишут? какая халява? есть две книги по 500ст каждая, которые читаю, но я просто не успею их за два дня перечитать и найти там то что мне нужно! было бы время, я бы не задавал вопросы
Читатель
Цитата(ZhenyaYa @ 28.04.12, 16:51) необходимо зарегистрироваться для просмотра ссылки
...есть две книги по 500ст каждая, которые читаю, но я просто не успею их за два дня перечитать и найти там то что мне нужно! ...

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

я надеюсь вы прикидываетесь
Читатель
Цитата(ZhenyaYa @ 28.04.12, 17:57) необходимо зарегистрироваться для просмотра ссылки
я надеюсь вы прикидываетесь

Не, прикалываюсь.
alex040269
Цитата(ZhenyaYa @ 28.04.12, 16:51) необходимо зарегистрироваться для просмотра ссылки
та не надо утрировать!!! возможно у люди уже встречались с такой ситуацией где то, и скинут ссылку или скажут где прочитать, я же не говорил им писать мне модуль!

Цитата(ZhenyaYa @ 28.04.12, 17:57) необходимо зарегистрироваться для просмотра ссылки
я надеюсь вы прикидываетесь


Я же написал ОткрытьФорму неужели нельзя посмотреть справку в конфигураторе? и задать уже более конкретный вопрос, где затык, что непонятно. На такие вопросы на этом форуме отвечают почти мгновенно и всегда ПРАВИЛЬНО. н6ачинайте трудиться, хватит форумы читать...
ZhenyaYa
В документе2 пишу:

Процедура ПередПар()
Парам = СоздатьОбъект("СписокЗначений");
Парам.ДобавитьЗначение(Вес,"Вес");
ОткрытьФормуМодально("Документ.РеализацияЖивотных", Парам);
КонецПроцедуры


В кнопку "Ок" добавляю формулу ПередПар()

В документе1 пишу в процедуре ПриОткрытии()

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


Реакции никакой...ошибок нет и значения "вес" не переносит...

точнее при нажатии "Ок" документ1 открывается, но вес не переносится
alex040269
Я скоприовал Ваш код - все передается. Пройдитесь отладчиком. У Вас точно все вызывается?
ZhenyaYa
Цитата(alex040269 @ 30.04.12, 15:48) необходимо зарегистрироваться для просмотра ссылки
Я скоприовал Ваш код - все передается. Пройдитесь отладчиком. У Вас точно все вызывается?

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

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

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

Вставте код
Сообщить(вес)
, и посмотрите, что вы передаете и что получаете.
5_kopeek
Цитата(ZhenyaYa @ 30.04.12, 22:47) необходимо зарегистрироваться для просмотра ссылки
а у "вес" в многострочной части или в шапке документа? у меня в многострочной части, может в этом дело?

Если Вам нужно заполнить реквизит в многострочной части документа, то перед присваиванием значения нужно спозиционироваться на той строке документа, в которой необходимо установить полученное через параметр значение.
ZhenyaYa
Цитата(alex040269 @ 01.05.12, 8:51) необходимо зарегистрироваться для просмотра ссылки
Это, просто, означает, что дело не в передаче параметров.

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


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


Получаю "0"

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

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

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


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

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

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

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

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



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

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

Если ТабЧасть.КоличествоСтрок()>0 Тогда
ЗагрузитьТабличнуюЧасть(ТабЧасть);
КонецЕсли;
ZhenyaYa
Цитата(Flexy @ 02.05.12, 14:26) необходимо зарегистрироваться для просмотра ссылки
А почему не используете Метод Выгрузить/ЗагрузитьТабличнуюЧасть документа?

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

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

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



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

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

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


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

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

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

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



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

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

НоваяСтрока()
ИтогоВес = ТабЧасть.Итог("Вес");
КонецЕсли
ZhenyaYa
Цитата(Flexy @ 02.05.12, 15:50) необходимо зарегистрироваться для просмотра ссылки
Да и можно просто взять Итог с ТЗ.
ТабЧасть=Форма.Параметр;

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

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


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

Не за что wink.gif
А что за ошибка?У себя проверил, без ошибок работает.
ZhenyaYa
Цитата(Flexy @ 02.05.12, 16:17) необходимо зарегистрироваться для просмотра ссылки
Не за что wink.gif
А что за ошибка?У себя проверил, без ошибок работает.


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

А ТабЧасть у вас Таблица значений или Список Значений?
Если список значений:
Если ТабЧасть.РазмерСписка()>0 Тогда...
ZhenyaYa
ТаблицаЗначений
ZhenyaYa
и еще форму надо открывать только модально, по другому з табличной частью работать не получится...при этом открывается маленькое окно, не очень удобно работать, с этим можно как то бороться?
5_kopeek
Так и не поняла, Вам нужно перенести только итог по колонке вес или значения веса во всех строках? Если только итог, тогда зачем передавать в качестве параметра всю табличную часть? Передавайте только Итог("Вес"). И совсем не обязательно открывать форму в модальном режиме, просто открывайте через ОткрытьФорму().
ZhenyaYa
Цитата(5_kopeek @ 02.05.12, 19:26) необходимо зарегистрироваться для просмотра ссылки
Так и не поняла, Вам нужно перенести только итог по колонке вес или значения веса во всех строках? Если только итог, тогда зачем передавать в качестве параметра всю табличную часть? Передавайте только Итог("Вес"). И совсем не обязательно открывать форму в модальном режиме, просто открывайте через ОткрытьФорму().


надо перенести итог по колонке "вес" одного документа в табличную часть в колонку "вес" другого документа. через просто ОткрытьФорму() не работает...экспериментировал...если бы итог переносился не в табличную часть, а в шапку, то можно было бы открывать немодально
mister-x
в чому проблема в ОткрытьФормуМодально(<Документ>,<КонтекстФормы>,<РежимПросмотра>)
КонтекстФормы можна передати у відкритий док, що хочеш і назад вертати з того відкритого дока (при закриті), що хочеш (наприклад, куримо обробку Клієнт-банк)
ZhenyaYa
В продолжение темы smile.gif
Сейчас есть такое : нажимаем на кнопочку в документе 1, открывается документ2 и закрывается документ1 ( так решил проблему открытия формы модально, то есть можно передавать параметры в табличную часть и немодально). вводим значение, нажимаем "ок", открывается документ1 и итоги заносятся в первую строку.
А вот дальше...нужно ввести вторую строку таким же методом, то есть опять нажать на кнопочку. Нажимаем, открывается документ2 , вводим,нажимаем ок и данные передаются в новый документ, что не подходит, так как нужно в старый, в другую строчку...Может кто поможет, чем сможет?
sercher
я вот читал-читал, и не понял а зачем Вам это все нужно? вы новый документ используете только для вычисления или он еще чего делает?
alex040269
Цитата(ZhenyaYa @ 07.05.12, 16:47) необходимо зарегистрироваться для просмотра ссылки
В продолжение темы smile.gif
Сейчас есть такое : нажимаем на кнопочку в документе 1, открывается документ2 и закрывается документ1 ( так решил проблему открытия формы модально, то есть можно передавать параметры в табличную часть и немодально). вводим значение, нажимаем "ок", открывается документ1 и итоги заносятся в первую строку.
А вот дальше...нужно ввести вторую строку таким же методом, то есть опять нажать на кнопочку. Нажимаем, открывается документ2 , вводим,нажимаем ок и данные передаются в новый документ, что не подходит, так как нужно в старый, в другую строчку...Может кто поможет, чем сможет?

1) непонятно зачем закрывать документ, если он еще нужен.
2) непонятно почему нельзя перенести все данные одним нажатием. (или у Вас договор с поставщиками клавиатур и мышей???)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.