Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Дек 2017, 17:59
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: програмное открытие документа  (Прочитано 4172 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Dimon777

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
в 1с зарплата хочу сделать такую фишку, если в документе стоит дата ПО, т.е. по какое число работал сотрудник, то при проведении документа должен открыться документ увольнения, если его нет , то новый, если если есть, то который уже имеется.....
я делаю запрос, потом условие и вот так я открываю форму документа, который уже есть
ОткрытьФорму("Документ.ПоступлениеТоваров.ФормаОбъекта", Новый Структура("Ключ", КакаяТоСсылкаНаДокумент), ЭтаФорма);
и еще так пробовал
ДокументОбъект =  Документы.УвольнениеИзОрганизаций.ПолучитьСсылку();
ДокументОбъект.ПолучитьФорму("ФормаДокумента").Открыть();

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


Оффлайн wise

  • ****
  • Сообщений: 428
  • РЕПУТАЦИЯ: 58
  • КПД: 14%
  • Кто сгорел, того не подожжешь
  • Регистрация: 2013-03-21
  • Сайт: 
  • Профессия: Ученик 1С
ДокументСсылка.<Имя документа> (DocumentRef.<Имя документа>)
ПолучитьФорму (GetForm)
Синтаксис:

ПолучитьФорму(<Форма>, <Владелец>, <КлючУникальности>)
Параметры:

<Форма> (необязательный)

Тип: Строка; ОбъектМетаданных: Форма .
Имя формы, как оно задано в конфигураторе, или объект описания метаданного требуемой формы. Если параметр не указан, то используется основная форма, заданная в конфигураторе.
<Владелец> (необязательный)

Тип: Форма; Элемент управления.
Объект, который будет являться владельцем открываемой формы.
<КлючУникальности> (необязательный)

Тип: Произвольный.
В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм.
При поиске учитываются значения свойств открытых форм соответствующим значениям параметров метода. Если найдена открытая форма (по совпадению всех параметров), то она будет возвращена вместо новой формы.
Если из некой формы (один и тот же владелец) требуется открывать новые экземпляры другой формы, то при каждом вызове метода значение данного параметра должно быть уникально (в рамках соответствующих значений свойств открытых форм).
Значение параметра присваивается свойству открываемой формы КлючУникальности.
Следует учитывать, что при получении формы из "объекта" система получает форму для конкретного экземпляра объекта с учетом совокупности переданных параметров, в то время как для "ссылки" всегда существует только один объект в базе данных и форма получается одна (для одинаковой совокупности параметров).
Возвращаемое значение:

Тип: Форма.

Описание:

Получает форму документа.

Доступность:

Толстый клиент.
Пример:

ВыбДокумент.ПолучитьФорму().Открыть();


p.s. не дорого продаю Синтаксис Помощник ;-)
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Оффлайн Dimon777

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
да читал я синтаксис помощник и делал по нему.... вот и не получается, открывает новую форму... хотя она уже есть в базе....
может кто-нибудь пример кинуть хотя бы???

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
напишите весь код!
Помогли, отблагодари!

Оффлайн Dimon777

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
вот весь код
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УвольнениеИзОрганизаций.РаботникиОрганизации.(
| Сотрудник,
| ДатаУвольнения
| ) КАК РаботникиОрганизации1,
| УвольнениеИзОрганизаций.Дата КАК Дата1,
| УвольнениеИзОрганизаций.Проведен КАК Проведен1,
| УвольнениеИзОрганизаций.Ссылка КАК Ссылка1
|ИЗ
| Документ.УвольнениеИзОрганизаций КАК УвольнениеИзОрганизаций" ;
   ВыборкаСтрокДокумента = Запрос.Выполнить().Выбрать();
   Пока ВыборкаСтрокДокумента.Следующий() Цикл
     Для Каждого ТекущаяСтрока из РаботникиОрганизации Цикл
Для каждого СтрокаДокумент Из ВыборкаСтрокДокумента.Ссылка1.РаботникиОрганизации Цикл
                  Сотрудник = ТекущаяСтрока.Сотрудник;
  ДатаУвольнения = ТекущаяСтрока.ДатаУвольнения;
  Сотрудник1 = СтрокаДокумент.Сотрудник;
    КонецЦикла;   
      КонецЦикла;
   КонецЦикла;

  Если Сотрудник = Сотрудник1 Тогда
  Если ЗначениеЗаполнено(ДатаУвольнения) Тогда
Документы.УвольнениеИзОрганизаций.ПолучитьФорму("ФормаДокумента");
  Форма.Открыть();

   Иначе   Если ЗначениеЗаполнено(ДатаУвольнения) Тогда

      ДокументОбъект = Документы.УвольнениеИзОрганизаций.СоздатьДокумент();
       ДокументОбъект.Заполнить(РаботникиОрганизации);
       ДокументОбъект.ПолучитьФорму().Открыть();
       Строка = ДокументОбъект.РаботникиОрганизации.Добавить();
      Строка.Сотрудник = ТекущаяСтрока.Сотрудник;
       Строка.ДатаУвольнения = ТекущаяСтрока.ДатаУвольнения;
  КонецЕсли;
  КонецЕсли;
   КонецЕсли;

  Если ТипЗнч(РаботникиОрганизации) = Тип("СправочникСсылка.СотрудникиОрганизаций") Тогда
                      Организация = РаботникиОрганизации.Организация;
                     КонецЕсли;

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Документы.УвольнениеИзОрганизаций.ПолучитьФорму("ФормаДокумента");
Форма.Открыть();
//Полная хрень!

ОткрытьЗначение(ВыборкаСтрокДокумента.ссылка1);
//Или
ВыборкаСтрокДокумента.ссылка1.ПолучитьФорму().Открыть();
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Dimon777

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
ссылка1 - это что? т.е. как ее получить...?

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
УвольнениеИзОрганизаций.Ссылка КАК Ссылка1
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
У вас система не виснет, от такого количества циклов? Почему не передавать параметры в запрос? То есть, алгоритм в следующем:
-перебираете строки документа, как только у вас заполнено ваша дата ПО, то запускаете запрос с параметрами сотрудник, дата увольнения;
-смотрите результат, если пустой то создаете новый документ,если не пустой, по возвращаете ссылку;
-Открываете документ;
Мне кажется так будет проще!
Помогли, отблагодари!


Теги:
 

Не открывает форму сохраненного документа, открывает форму нового.

Автор EHOTРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 4481
Последний ответ 13 Апр 2012, 23:26
от Vit1501
Автоматическое заполнение табличной части документа из табличной части другого

Автор WillРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 15946
Последний ответ 16 Авг 2012, 12:07
от Will
Заполнение поля табличной части документа из табличной части справочника.

Автор Kurt_WagnerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 4202
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Заполнение табличной части документа реквизитами табличной части справочника

Автор kaf_infoРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 639
Последний ответ 10 Май 2017, 20:44
от ilnur75
Добавление сведений в графу "основание" документа "ТОРГ-12"

Автор Ярослав1984Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7751
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
157 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
47 Сообщений
andron81_81
44 Сообщений
oleg-x
44 Сообщений
BuhRust
33 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 243
  • Точка Скрытых: 0
  • Точка Пользователей: 8
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal