Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.84/112: Рейтинг темы: голосов - 112, средняя оценка - 4.84
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82

Проведение документа из модуля формы документа

04.06.2013, 18:36. Показов 27032. Ответов 56
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся с такой проблемой. Нужно провести документ из формы документа. Побывал на многих сайтах и ничего путного не нашел
только вот это кое что вроде нормальное попалось
http://v8.1c.ru/predpriyatie/t... uments.htm

но ругается на эту строку
1C
1
Док = ПолеВводаДокумент.ПолучитьОбъект();
типо функции получить объект нет.

что можно сделать и реально ли провести документ из формы документа?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.06.2013, 18:36
Ответы с готовыми решениями:

Обратиться к реквизитам Документа из Модуля этого документа
Привет всем. У меня проблема вот с чем: в процедуре обработки документа нужно обратиться к реквизитам самого документа и реквизитам...

Как изменить текст надписи формы документа при записи документа
Здравствуйте уважаемые, у меня простой вопрос - как мне при записи документа изменить надпись на форме, нужный код я написал, как мне...

1С 8.1 Проведение документа
Создаю новый документ программно... и проводку в нем тоже: Движение = НовыйДок.Движения.Типовой; Проводка =...

56
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
07.06.2013, 09:00
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от delete2013 Посмотреть сообщение
уже как-то была такая проблема и я решил довольно быстро, но уже не помню как. А сейчас 30 минут просидел и не понял в чем дело. Думал может чтот с ролями гдет доступ не поставил, та вроде нет, везде все проставлено. Что можете подсказать, в чем может быть косяк?
Это из-за того, что в качестве основной таблицы дин. списка используется виртуальная СрезПоследних. Реализуйте программно открытие документа.
2
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82
08.06.2013, 15:04  [ТС]
Цитата Сообщение от Fenomen Посмотреть сообщение
Это из-за того, что в качестве основной таблицы дин. списка используется виртуальная СрезПоследних. Реализуйте программно открытие документа.
да, вы правы. Оказывается из-за этого. Спасибо. Но только я не знаю как открыть вот так элемент.

предпологаю что нужно будет использовать чтот тип такого
1C
1
форма=ПолучитьФорму("Документ.Заказы.ФормаОбъекта");
и наверно тут будет вторым параметром ссылка на эту строку или наверно отбор какой-то. Но в таком случае я не могу понять как оно должно быть
0
 Аватар для duk337
2956 / 1768 / 84
Регистрация: 03.11.2011
Сообщений: 8,280
08.06.2013, 18:12
Цитата Сообщение от delete2013 Посмотреть сообщение
орма=ПолучитьФорму("Документ.Заказы.Форм аОбъекта");
Где Вы это взяли? Есть ведь интерактивная подсказка, синтакс-контроль, синтакс-помощник. Форум же гораздо менее быстр, чем отладчик. Голову, конечно, в первом случае включать не обязательно.
0
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82
08.06.2013, 19:09  [ТС]
Цитата Сообщение от duk337 Посмотреть сообщение
Где Вы это взяли? Есть ведь интерактивная подсказка, синтакс-контроль, синтакс-помощник. Форум же гораздо менее быстр, чем отладчик. Голову, конечно, в первом случае включать не обязательно.
это я использовал для открытия формыдокумента ТТН вот в таком варианте

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
форма=ПолучитьФорму("Документ.ТоваротранспортнаяНакладная.ФормаОбъекта");
    форма.Объект.Клиент=Объект.Клиент;
    
    форма.Объект.Кассир=Объект.Кассир;
    форма.Объект.ДокументЗаказа=объект.Ссылка;
    Для Каждого стр Из Объект.Товары Цикл
        новаяСтрока=форма.Объект.Товары.Добавить();
        новаяСтрока.Товар=стр.Товар;
        новаяСтрока.Количество=стр.Количество;
        новаяСтрока.Цена=стр.Цена;
        новаяСтрока.Сумма=стр.Сумма;
    КонецЦикла;
    форма.Открыть(); //открыть форму товаротранспортных накладных с заполненными полями
думал может и тут надо чтот типо такого использовать, попробывал вот так

1C
1
2
3
строка=Элементы.Список.ТекущаяСтрока;
    ПараметрыФормы = Новый Структура("Ключ",строка);
    ОткрытьФорму("Документ.Заказ.ФормаОбъекта", ПараметрыФормы);
но оказалось не то. Форма появляется, но новая, не этой строки, а просто для нового документа.

Добавлено через 1 минуту
Цитата Сообщение от duk337 Посмотреть сообщение
Есть ведь интерактивная подсказка, синтакс-контроль, синтакс-помощник. Форум же гораздо менее быстр, чем отладчик. Голову, конечно, в первом случае включать не обязательно.
это да, согласен. Вот благодаря ему нашел это свойство ТекущаяСтрока. Но как применил выше, не вышло(
0
 Аватар для duk337
2956 / 1768 / 84
Регистрация: 03.11.2011
Сообщений: 8,280
08.06.2013, 22:01
"Удаляются формы, которые не использовались в этот период времени." - это Вас не насторожило?
Вам надо отработать на экране конкретный объект. Вот в свойствах и методах его и лежит путь к счастью
1
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82
08.06.2013, 22:42  [ТС]
Цитата Сообщение от duk337 Посмотреть сообщение
"Удаляются формы, которые не использовались в этот период времени." - это Вас не насторожило?
может насторожит если я точно пойму то, что вы имели введу) т.е я пока что не понял((

Цитата Сообщение от duk337 Посмотреть сообщение
Вам надо отработать на экране конкретный объект. Вот в свойствах и методах его и лежит путь к счастью
да нужно конкретный объект, который я выберу в списке формы РС. Вот в основном реквезите Список есть такие свойства как текущаяСтрока и ТекущийЭлемент. Как я понял уже надо использовать ТекущийЭлемент.

пробывал вот так
1C
1
2
3
4
5
6
Процедура Команда1(Команда)
    //строка=Элементы.Список.ТекущаяСтрока;
    строка=Элементы.Список.ТекущийЭлемент;
    ПараметрыФормы = Новый Структура("Ключ",строка);
    ОткрытьФорму("Документ.Заказ.ФормаОбъекта", ПараметрыФормы); 
КонецПроцедуры
но тоже не помогло. Уже не знаю что именно использовать. Может я вообще не в том направление ищу?

а вообще получится программно открыть текущую строку т.к в списке отображается запись из регистра сведений по срезу последних, может тогда если и программно открывать, то будет тоже предупреждение, что объект не найден?
уже готов биться головой об стену, но не поможет
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
08.06.2013, 23:05
Переопределить процедуру выбора формы списка регистра сведений (Ну или что у вас там открывается)
0
 Аватар для duk337
2956 / 1768 / 84
Регистрация: 03.11.2011
Сообщений: 8,280
08.06.2013, 23:09
хм... как помочь-то... Я понимаю, что ты не лодырь, даю намёки, но... прямые фрагменты текстов - тоже не метод. Ну как же включить правильное направление мысли? Вот смотри. Строка - "я выберу в списке формы РС". Что есть строка? Открою тайну: это просто картинка, разбитая на квадратики. Форма - это тоже картинка. А объект - это прежде всего данные на сервере. И вот у тебя нет чёткого осознания, что у картинки есть просто связки квадратиков с атрибутами объекта.
Вот ты видишь строку. Система даёт тебе возможность связаться с данными этой строки. Какой объект, нужный тебе, соответствует интересующему тебя квадратику? Регистратор? Ну вот и берём регистратор из данных, связанных со строкой.
Давай дальше сам рули, а то тема растянется на второй круг спидометра. И попробуй формулировать вопросы по структуре ситемы, а не по обезьяньей логике.
1
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82
08.06.2013, 23:13  [ТС]
Цитата Сообщение от Dethmontt Посмотреть сообщение
Переопределить процедуру выбора формы списка регистра сведений (Ну или что у вас там открывается)
мне нужно открыть выбранный элемент в форме списка регистра сведений (т.е выбранную строку в списке)
думаю переопределять выбор формы списка тут не нужно, хотя может я не так вас понял
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
08.06.2013, 23:29
В модуле формы списка РС переопределяем процедуру ВЫБОР элемента формы СПИСОК
1C
1
2
3
4
5
6
7
8
9
10
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    
    ТекДанные = Элемент.ТекущиеДанные;
    Если НЕ ТекДанные = Неопределено Тогда 
        СтандартнаяОбработка = Ложь;
        ОткрытьФорму("Документ.Заказ.ФормаОбъекта",Новый структура("Ключ",ТекДанные.Регистратор),ЭтаФорма);
    КонецЕсли; 
    
КонецПроцедуры

Не по теме:

Вы постоянно все как то не так понимаете...



Добавлено через 52 секунды
P.S. "Ключ" в структуре ничем заменять не нужно
1
08.06.2013, 23:33

Не по теме:

Dethmontt, (алаверды) ну и терпенье у тебя... :senor:

0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
08.06.2013, 23:53

Не по теме:

Иногда сам удивляюсь...



Добавлено через 18 минут
delete2013, ну что? Это оказалось, то что нужно?
0
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82
08.06.2013, 23:53  [ТС]
Цитата Сообщение от duk337 Посмотреть сообщение
Вот ты видишь строку. Система даёт тебе возможность связаться с данными этой строки. Какой объект, нужный тебе, соответствует интересующему тебя квадратику? Регистратор? Ну вот и берём регистратор из данных, связанных со строкой.
Давай дальше сам рули
даа, и вправду. Как то именно об регистраторе не пришло в голову.


Цитата Сообщение от Dethmontt Посмотреть сообщение
Не по теме:
Вы постоянно все как то не так понимаете...
да, так оно и есть. Что очень грустно. Буду работать над собой.


Цитата Сообщение от Dethmontt Посмотреть сообщение
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ТекДанные = Элемент.ТекущиеДанные;
* * Если НЕ ТекДанные = Неопределено Тогда
* * * * СтандартнаяОбработка = Ложь;
* * * * ОткрытьФорму("Документ.Заказ.ФормаОбъект а",Новый структура("Ключ",ТекДанные.Регистратор), ЭтаФорма);
* * КонецЕсли;*
КонецПроцедуры
спасибо огромное.
Цитата Сообщение от duk337 Посмотреть сообщение
Dethmontt, (алаверды) ну и терпенье у тебя...
даа, я согласен. Я на столько задаю вопросы, что мне уже становится страшно за это, а мне до сих пор помогают и терпят. Спасибо
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
08.06.2013, 23:55
Попробуй поставить стандартной обработке истину(Ну что бы понять)
СтандартнаяОбработка = ИСТИНА;
1
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82
09.06.2013, 00:09  [ТС]
как я понял свойство текущиеДанные содержит коллекцию (структуру) данных формы.

я вот не особо понял зачем использовать условие
1C
1
2
3
4
5
ТекДанные = Элемент.ТекущиеДанные;
    Если НЕ ТекДанные = Неопределено Тогда 
        СтандартнаяОбработка = Ложь;
        ОткрытьФорму("Документ.Заказ.ФормаОбъекта",Новый структура("Ключ",ТекДанные.Регистратор),ЭтаФорма);
    КонецЕсли;
как я понял это для того, чтоб открытие срабатывало если в списке есть данные.

попробывал это реализовать так используя как вы использовали свойство Элемент (в этот случае как я понимаю получаем именно текущую строку т.е выбранную)
1C
1
2
 ТекДанные = Элемент.ТекущиеДанные;
   ОткрытьФорму("Документ.Заказ.ФормаОбъекта",Новый структура("Ключ",ТекДанные.Регистратор));
и через свойство Элементы (а в этом все строки списка.)
1C
1
2
ТекДанные = Элементы.Список.ТекущиеДанные; 
   ОткрытьФорму("Документ.Заказ.ФормаОбъекта",Новый структура("Ключ",ТекДанные.Регистратор));
хотя если мы используя Элементы и получаем сразу все строки списка, но благодаря свойству ТекущиеДанные мы получили именно текущую строку и ее данные.


все работает хоть в каком случае. Без условия будет работать открытие быстрей. Только вот не пойму нормально для чего условие не ругайтесь только, пытаюсь понять весь смысл 1С

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

Добавлено через 41 секунду
Цитата Сообщение от Dethmontt Посмотреть сообщение
delete2013, ну что? Это оказалось, то что нужно?
да, спасибо)

Добавлено через 2 минуты
Цитата Сообщение от Dethmontt Посмотреть сообщение
Попробуй поставить стандартной обработке истину(Ну что бы понять)
СтандартнаяОбработка = ИСТИНА;
да, вроде понял. Это для того, чтобы отключить стандартную обработку открытия, а использовать только ту, что зададим программно
0
 Аватар для duk337
2956 / 1768 / 84
Регистрация: 03.11.2011
Сообщений: 8,280
09.06.2013, 00:37
Цитата Сообщение от delete2013 Посмотреть сообщение
да, вроде понял.
ключевое слово вроде. Пилите дальше

Добавлено через 1 минуту
Вы на верном пути!

Добавлено через 1 минуту
объект.ПолучитьФорму().Открыть()

Добавлено через 14 секунд
это намёк
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
09.06.2013, 01:16
Цитата Сообщение от delete2013 Посмотреть сообщение
Если НЕ ТекДанные = Неопределено Тогда
Почему это условие???

Добавлено через 7 минут
В случае если вызов процедуры произошел (Ну например я решил ее вызвать программно или платформа заглючила), а выделенной строки на форме НЕТ, то свойство ТекущиеДанные вернет тип неопределено и пользователь увидит ошибку обращения к несуществующему свойству РЕГИСТРАТОР (ТекДанные.Регистратор) - это условие как раз это и проверяет

Добавлено через 5 минут
Это повелось еще с 8.1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.06.2013, 01:16

Проведение документа
Всем здравствуйте. Я только начинаю изучать 1С:Предприятие. Поэтому не пинайте. Итак,есть задача: 1. Документы должны проводиться...

Проведение документа
Здравствуйте, есть вопрос. Как для кода проведения документа написать реквизит табличной части, тип данных которого является ссылка на...

Проведение документа
Документ имеет принадлежность к бухгалтерскому учету. Документ создаётся сегодня, а проводится, например завтра. Добавил в реквизиты...

Проведение документа
Я создаю на основании документа ОтгрузкаТоваровСоСкдлада документ ПриходныйКассовыйОрдер. ОтгрузаТовараСоСклада =...

Автоматичекое проведение документа
День добрый. Вот мне надо провести документ через определенное время. У меня типо конфигурация Боулинга. Я сначала провожу документ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
57
Ответ Создать тему
Новые блоги и статьи
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru