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

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

04.06.2013, 18:36. Показов 26627. Ответов 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
Ответ Создать тему
Новые блоги и статьи
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru