Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 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
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82
04.06.2013, 23:17  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Fenomen Посмотреть сообщение
Не нужно ничего вызывать. Вам нужно обработке проведения документа ТТН, сделать такое же движение как в заказе. И не нужно будет ничего придумывать с проведением из формы.
да это так. Но в регистре будет запись от другого регистратора, а та запись останется с таким же значением регистра как ложь. А мне б хотелось ту запись изменить.
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
05.06.2013, 00:04
Цитата Сообщение от delete2013 Посмотреть сообщение
Но в регистре будет запись от другого регистратора, а та запись останется с таким же значением регистра как ложь. А мне б хотелось ту запись изменить.
0
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
05.06.2013, 09:30
delete2013, Я уже объяснил Вам, что не нужно менять "ту" запись. Две записи в регистре от разных регистраторов - это правильное решение!
1
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82
05.06.2013, 12:19  [ТС]
Цитата Сообщение от Fenomen Посмотреть сообщение
Я уже объяснил Вам, что не нужно менять "ту" запись. Две записи в регистре от разных регистраторов - это правильное решение!
все до меня дошло) да это глупо будет изменять ту запись на истину т.к если ТТН обработает тот документ через два дня, то и изменится при повторном проведение и дата заказа лучше как вы предложили, спасибо.

только вот я теперь не могу придумать как мне сделать отбор, чтобы при открытии формы списка у меня появлялись только те заказы, которые еще не обработаны т.е для которых еще не сделано проведение документом ТТН

до этого был вот такой отбор
1C
1
2
3
ЗначениеОтбора = Новый Структура("Обработана", Ложь);
        ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);
        ОткрытьФорму("РегистрСведений.Заказы.ФормаСписка",ПараметрыВыбора);
теперь при таком отборе у меня выходят уже обработанные записи и те которые уже поступили и до сих пор не обработаны.

что нужно добавить в этот отбор, чтобы исключить обработанные заказы?
0
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
05.06.2013, 13:19
Цитата Сообщение от delete2013 Посмотреть сообщение
что нужно добавить в этот отбор, чтобы исключить обработанные заказы?
Вам нужно чтобы список отображал СрезПоследних, а не основную таблицу регистра. Сделайте произвольный запрос в дин. списке и обращайтесь к срезу.
1
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82
05.06.2013, 13:41  [ТС]
Цитата Сообщение от Fenomen Посмотреть сообщение
Вам нужно чтобы список отображал СрезПоследних, а не основную таблицу регистра. Сделайте произвольный запрос в дин. списке и обращайтесь к срезу.
да точно, можно через него.
думаю там запрос сделать уже смогу. А можно ли формировать динамический запрос при нажатие созданной на форме кнопки?

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

вот использовал такой запрос
1C
1
2
3
4
5
6
7
8
9
ВЫБРАТЬ
                     |  ЗаказыСрезПоследних.Клиент,
                     |  ЗаказыСрезПоследних.Кассир,
                     |  ЗаказыСрезПоследних.Обработана,
                     |  ЗаказыСрезПоследних.Сумма
                     |ИЗ
                     |  РегистрСведений.Заказы.СрезПоследних() КАК ЗаказыСрезПоследних
                     |ГДЕ
                     |  Не ЗаказыСрезПоследних.Обработана";
а вот что писать в параметрах виртуальной таблицы так и не сообразил.
я так понимаю параметры виртуальной таблицы будут отображатся в скобках вот этой строки
1C
1
2
|ИЗ
                     |  РегистрСведений.Заказы.СрезПоследних() КАК ЗаказыСрезПоследних
а точнее здесь
1C
1
РегистрСведений.Заказы.СрезПоследних()
0
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
05.06.2013, 15:43
Цитата Сообщение от delete2013 Посмотреть сообщение
а вот что писать в параметрах виртуальной таблицы так и не сообразил.
В данном случае ничего.
Если Вам понадобится фильтровать данные, по какому либо измерению регистра, то такой фильтр нужно указывать в параметрах виртуальной таблицы.
Например:
1C
1
РегистрСведений.Заказы.СрезПоследних(,Клиент = &Клиент)
1
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82
05.06.2013, 15:54  [ТС]
Цитата Сообщение от Fenomen Посмотреть сообщение
Если Вам понадобится фильтровать данные, по какому либо измерению регистра, то такой фильтр нужно указывать в параметрах виртуальной таблицы.
Например:
ага, это вроде понял. Спасибо.
а вот что с запросом не так тогда. По прежнему выводит те записи, которые уже обработаны.
вот код
1C
1
2
3
4
5
6
7
8
9
ВЫБРАТЬ
                     |  ЗаказыСрезПоследних.Клиент,
                     |  ЗаказыСрезПоследних.Кассир,
                     |  ЗаказыСрезПоследних.Обработана,
                     |  ЗаказыСрезПоследних.Сумма
                     |ИЗ
                     |  РегистрСведений.Заказы.СрезПоследних() КАК ЗаказыСрезПоследних
                     |ГДЕ
                     |  Не ЗаказыСрезПоследних.Обработана";
он походу эти новые записи от регистратора ТТН не замечает, хотя они уже в регистре появились и обработка в истине у них. Что может быть не так?;(
0
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82
05.06.2013, 19:07  [ТС]
не могу разобраться, почему выводит все равно те событий, которые уже обработаны.
вот конфигурация.
1Cv8.rar
не судите только строго, я только начинаю изучать 1С;(
все сейчас завинчено на работе пользователя Предприятие (ну в дальнейшем может это будет администратор)
получается при запуске предприятия будет вылетать форма списка регистра заказы с новыми заказами, которые еще не обработаны (на данный момент будут отображатся все что обработаны и не обработаны).
при выборе какой либо записи в списке откроется форма документа документа заказа (ну это и понятно, что она откроется). На панели команд будет кнопка Создание путевого листа. При нажатии на нее откроется форма документа ТТН. Там все заполняем и сохраняем. Получается проходит движение в регистр Заказы с значением реквезита обороты в истину. Теперь в регистре есть две записи одного заказа (одна со значением ложь (обработанная документов заказ) другая с истиной от документа ТТН). Теперь при повторном запуске системы будет обрабатыватся процедура и функция


1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Функция ЗапросНовыхЗаказов() Экспорт
    Перем кол;
    кол=0;
    Если РаботаСролями.АктивнаяРоль()=1 Тогда
        Запрос=Новый Запрос;
        Запрос.Текст="ВЫБРАТЬ
                     |  ЗаказыСрезПоследних.Клиент,
                     |  ЗаказыСрезПоследних.Кассир,
                     |  ЗаказыСрезПоследних.Обработана,
                     |  ЗаказыСрезПоследних.Сумма
                     |ИЗ
                     |  РегистрСведений.Заказы.СрезПоследних() КАК ЗаказыСрезПоследних
                     |ГДЕ
                     |  Не ЗаказыСрезПоследних.Обработана";
        выборка=Запрос.Выполнить().Выбрать();
        Пока выборка.Следующий() Цикл
            кол=Число(кол)+Число(1);
        КонецЦикла;
        Если кол>0 Тогда
            Сообщить("Поступили новые заказы");
        КонецЕсли;
    КонецЕсли;
    Возврат кол;
КонецФункции
1C
1
2
3
4
5
6
7
8
9
Процедура ПриНачалеРаботыСистемы()
    кол=РаботаСзапросами.ЗапросНовыхЗаказов();
    Если кол>0 Тогда
        //ЗначениеОтбора = Новый Структура("Обработана", Ложь);
        //ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);
        //ОткрытьФорму("РегистрСведений.Заказы.ФормаСписка",ПараметрыВыбора);   
        ОткрытьФорму("РегистрСведений.Заказы.ФормаСписка"); 
    КонецЕсли;
КонецПроцедуры
то как я понял по запросу уже заказ со значением ложь должна пропускаться т.к есть ближе по времени обработанный заказ документов ТТН с значением реквезита обработана в истину.

уважаемые 1С программисты можете сказать в чем дело, в чем я накасячил? спасибо огромное за помощь.
0
900 / 877 / 11
Регистрация: 15.03.2012
Сообщений: 2,680
06.06.2013, 10:02
Цитата Сообщение от delete2013 Посмотреть сообщение
уважаемые 1С программисты можете сказать в чем дело, в чем я накасячил?
Много в чем

1. Каково назначение регистра сведений Заказы? Если Вы помните, то когда я предлогал его использовать, я предлагал структуру: Измерение - Заказ, Ресурс - Обработана. У Вас же много измерений да еще проблема в том, что у Вас при формировании движения в Заказе не заполнен ЗавЭкспедицией, но заполнен Кассир. А в движении ТТН не заполнен кассир, но заполнен ЗавЭкспедицией. Отсюда у вас в срезе две записи.

2. ОткрытьФорму("РегистрСведений.Заказы.Фор маСписка") - здесь Вы просто открываете форму без каких либо фильтров.

Не знаю с какой целью Вы сейчас используете(или планируете использовать) регистр сведений Заказы, поэтому либо его меняйте, либо добавьте еще один, с описанной мной структурой.
1
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82
06.06.2013, 14:15  [ТС]
Цитата Сообщение от Fenomen Посмотреть сообщение
Много в чем
да я согласен, косяков у меня хватает


Цитата Сообщение от Fenomen Посмотреть сообщение
Каково назначение регистра сведений Заказы?
будет хранится инфа о проведенных заказах.
Цитата Сообщение от Fenomen Посмотреть сообщение
Если Вы помните, то когда я предлогал его использовать, я предлагал структуру: Измерение - Заказ, Ресурс - Обработана
т.е то, что у меня сейчас есть лучше переделать и изменить под такой вот варинат
Регистр Сведений Заказ:
измерения:
-Заказ тип ссылка на документ Заказ
Ресурс:
-обработано тип булево

и теперь как я понял будет в результате чтоль одна запись после проведение документа ТТН оставаться в этом регистре? записи должно быть все равно две, т.к два регистратора
сейчас только вот попробую этот вариант как вы написали, то раньше я значит не так понял((

Добавлено через 8 минут
блин, работает) прикольно. Спасибо. Все оказалось проще чем казалось

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

Добавлено через 6 минут
как сделать запрос динамического списка только для новых заказов я думаю знаю, он будет таким же как и этот)
вот только б мне его к кнопке прикрутить)
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
06.06.2013, 14:26
ВЫБРАТЬ ЗАКАЗ ИЗ РЕГИСТР ГДЕ РЕСУРС = &Параметр

ДинамическийСписок.Параметры.УстановитьЗ начениеПараметра("Параметр",ИСТИНА);
1
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82
06.06.2013, 19:11  [ТС]
Цитата Сообщение от Dethmontt Посмотреть сообщение
ВЫБРАТЬ ЗАКАЗ ИЗ РЕГИСТР ГДЕ РЕСУРС = &Параметр
ДинамическийСписок.Параметры.УстановитьЗ начениеПараметра("Па раметр",ИСТИНА);

ага, вот как это делается. Буду знать) спасибо)

Добавлено через 4 часа 39 минут
блин не знаю, что произошло или что я сделал. Вообщем проблемка такая. Есть регистр сведений Заказ. У него есть регистратор Заказ. После того, когда Заказ проведен, запись попала в регистр. Перехожу в форму списка регистра, хочу открыть запись и вылетает сообщение что объект не найден. И не удается открыть запись.
Обработка движения проходит по след. коду

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
 
    // регистр Заказы2
    Движения.Заказы2.Записывать = Истина;
    Для Каждого ТекСтрокаТовары Из Товары Цикл
        Движение = Движения.Заказы2.Добавить();
        Движение.Период = Дата;
        Движение.Заказ = Клиент;
        Движение.Обработана = Ложь;
    КонецЦикла;
 
    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
уже как-то была такая проблема и я решил довольно быстро, но уже не помню как. А сейчас 30 минут просидел и не понял в чем дело. Думал может чтот с ролями гдет доступ не поставил, та вроде нет, везде все проставлено. Что можете подсказать, в чем может быть косяк?
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
06.06.2013, 23:00
Всегда вставляй ошибки на форум, так быстрее и понятнее.
0
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82
06.06.2013, 23:40  [ТС]
Цитата Сообщение от Dethmontt Посмотреть сообщение
Всегда вставляй ошибки на форум, так быстрее и понятнее.
это да, согласен. Но дело в том, что прога не вылетает, она работает. Просто выходит сообщение, что объект не найден и все. Вылетов нет, все работает. Просто открыть запись через регистр регистратора не выходит. А движения документа работает, запись попадает в регистр. Не пойму где я уже опять накасячил или что сделал лишнего. Думаю может удалить документ и регистр и заново попробывать создать. Но не хотелось бы прибегать к таким радикальным мерам.
0
 Аватар для duk337
2956 / 1768 / 84
Регистрация: 03.11.2011
Сообщений: 8,280
07.06.2013, 00:28
Движение.Активность=Истина; ??
Глянуть через меню.операции... может, там Регистратор отвалился?
Если стоит "Не удалять движения" - дубль, должно отругаться... Что ещё?
Как правило, косяк в самом неожиданном месте
1
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82
07.06.2013, 00:51  [ТС]
Цитата Сообщение от duk337 Посмотреть сообщение
Как правило, косяк в самом неожиданном месте
да я согласен. Может он у меня и под носом, но я слепой тогда


Цитата Сообщение от duk337 Посмотреть сообщение
Глянуть через меню.операции... может, там Регистратор отвалился?
в управляемом приложение чтот того не нашел(((
Цитата Сообщение от duk337 Посмотреть сообщение
Движение.Активность=Истина; ??
не, это в движение не включена строка, но с ней тоже тот же эффект

это ппц, я уже не знаю что может быть.
1Cv8.rar
если кому будет не тяжело, гляньте пожалуйста. Я уже не знаю, что там не так Все документы и регистры доступны в подсистеме предприятие.
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
07.06.2013, 01:14
РС подчиненный регистратору редактируется только через документ и так его открыть нельзя (У него нет формы записи)
0
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 82
07.06.2013, 01:48  [ТС]
Цитата Сообщение от Dethmontt Посмотреть сообщение
РС подчиненный регистратору редактируется только через документ и так его открыть нельзя (У него нет формы записи)
если выбрать запись в форме списка регистра, то откроется запись документа самого. А сейчас и этого не происходит т.к выдает сообщение, что объект не найден
0
 Аватар для duk337
2956 / 1768 / 84
Регистрация: 03.11.2011
Сообщений: 8,280
07.06.2013, 08:00
Цитата Сообщение от delete2013 Посмотреть сообщение
в управляемом приложение чтот того не нашел(((
вверху слева пупочка с треугольничком. Все функции
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.06.2013, 08:00

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
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