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

Автор Тема: ЭтоНовый() при записи нового элемента справочника  (Прочитано 9835 раз)

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

Оффлайн Maxx79

  • *
  • Сообщений: 25
  • РЕПУТАЦИЯ: 1
  • КПД: 4%
  • Регистрация: 2013-10-29
  • Компания: Nissan-Part
  • Профессия: Программист 1С
Добрый день!

Прочитал много тем по этому поводу, но так и не нашел ответа (или не понял  :mellow:)

При записи НОВОГО элемента справочника Контрагенты, надо автоматом создать новый договор в подчиненном справочнике ДоговорыКонтрагентов.
Делал так:
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если Объект.Ссылка.Пустая() Тогда
НовыйДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
НовыйДоговор.Владелец = Объект.Наименование;
НовыйДоговор.Наименование = "Основной договор";
НовыйДоговор.ВалютаВзаиморасчетов = Константы.ВалютаВзаиморасчетов.Получить();
НовыйДоговор.МояОрганизацияСКоторойЗаключенДоговор = Константы.ОснавнаяОрганизация.Получить();
НовыйДоговор.СтатусДоговора = Перечисления.СтатусыДоговоровКонтрагентов.Действующий;
НовыйДоговор.ПризнакОсновногоДоговора = Истина;
НовыйДоговор.Записать();
КонецЕсли;
КонецПроцедуры
Но НовыйДоговор.Владелец = Объект.Наименование; - это не ссылка

Пытался так:
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
Если Объект.Ссылка.Пустая() Тогда
НовыйДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
НовыйДоговор.Владелец = Объект.Наименование;
НовыйДоговор.Наименование = "Основной договор";
НовыйДоговор.ВалютаВзаиморасчетов = Константы.ВалютаВзаиморасчетов.Получить();
НовыйДоговор.МояОрганизацияСКоторойЗаключенДоговор = Константы.ОснавнаяОрганизация.Получить();
НовыйДоговор.СтатусДоговора = Перечисления.СтатусыДоговоровКонтрагентов.Действующий;
НовыйДоговор.ПризнакОсновногоДоговора = Истина;
НовыйДоговор.Записать();
КонецЕсли;
КонецПроцедуры
Но тогда Если Объект.Ссылка.Пустая() Тогда - не имеет смысла, так как при записи уже существующего контрагента, просто создается еще один договор

Сделал так:
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
КоличествоДоговоров = КоличествоДоговоровКонтрагента(Объект.Ссылка);
Если КоличествоДоговоров = 0 Тогда
СоздатьДоговорКонтрагента(Объект.Ссылка);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СоздатьДоговорКонтрагента(Контрагент)
НовыйДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
НовыйДоговор.Владелец = Контрагент;
НовыйДоговор.Наименование = "Основной договор";
НовыйДоговор.ВалютаВзаиморасчетов = Константы.ВалютаВзаиморасчетов.Получить();
НовыйДоговор.МояОрганизацияСКоторойЗаключенДоговор = Константы.ОснавнаяОрганизация.Получить();
НовыйДоговор.СтатусДоговора = Перечисления.СтатусыДоговоровКонтрагентов.Действующий;
НовыйДоговор.ПризнакОсновногоДоговора = Истина;
НовыйДоговор.Записать();
КонецПроцедуры
&НаСервере
Функция КоличествоДоговоровКонтрагента(Контрагент)

Перем КоличествоДоговоровКонтрагента;
КоличествоДоговоровКонтрагента = 0;

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ДоговорыКонтрагентов.Код
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ДоговорыКонтрагентов.Владелец = &Владелец";

Запрос.УстановитьПараметр("Владелец", Контрагент);

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл
КоличествоДоговоровКонтрагента = КоличествоДоговоровКонтрагента + 1;
КонецЦикла;

Возврат КоличествоДоговоровКонтрагента;
КонецФункции
На мой взгляд, это как-то громоздко и коряво. Подскажите способ по-лучше.


Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
в модуле объекта
Процедура ПриЗаписи(Отказ)
Если ЭтотОбъект.ДополнительныеСвойства.Новый Тогда
//Ваш код
КонецЕсли;
КонецПроцедуры

Процедура ПередЗаписью(Отказ)
ЭтотОбъект.ДополнительныеСвойства.Вставить("Новый", ЭтоНовый());
КонецПроцедуры

Оффлайн Maxx79

  • *
  • Сообщений: 25
  • РЕПУТАЦИЯ: 1
  • КПД: 4%
  • Регистрация: 2013-10-29
  • Компания: Nissan-Part
  • Профессия: Программист 1С


Теги:
 

Как вызвать "Анализ субконто" из справочника "Контрагенты"

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

Ответов: 1
Просмотров: 6489
Последний ответ 06 Фев 2012, 10:46
от cska-fanat-kz
Заполнение поля табличной части документа из табличной части справочника.

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

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

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

Ответов: 1
Просмотров: 620
Последний ответ 10 Май 2017, 20:44
от ilnur75
Как сделать, чтобы поле в документе имело тип "ссылка на поле справочника"?

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

Ответов: 5
Просмотров: 2030
Последний ответ 05 Мар 2017, 14:36
от Igor100500
Изменение цвета при подборе сотрудника в форме списка справочника "Сотрудники организации" для документа "Зарплата к выплате организаций" ЗУП 2.5

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

Ответов: 2
Просмотров: 267
Последний ответ 12 Окт 2017, 14:02
от wise

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
170 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
38 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal