Как связать реквизиты двух справочников 1с

   German

26.03.05 — 16:06

Никак не могу понять как связать реквизиты двух справочников и документа и справочников.Вот наприме р у меня есть два справочника Сотрудники и образование.

Как связать реквизиты двух справочников?

«Сотрудники» имеет реквизиты:               «Образование»(подчинен «Сотрудники») имеет реквизиты:

Код              <———————->  Код

наименование(ФИО) <———————> Наименование(ФИО)

Оклад(периодический)              

Образование  <—————————> Образование

Как связать реквизиты двух документов?

Как связать реквизиты справочника и документа?

Пожалуйста помогите !

  

Партнерская программа EFSOL Oblako

   Хряк

1 — 26.03.05 — 16:26

Нафига в спр.образование ФИО? Или я не догоняю?

   ally

2 — 26.03.05 — 20:58

(0) хня какаято

   427

3 — 26.03.05 — 21:03

«Доступно и всерьез»

Живой пример к ветке «СДАЛ….»

и ведь получит сертификат…

   romix

4 — 27.03.05 — 04:31

Согласованию реквизитов/полей БД посвящена теория баз данных (Кодда).

В 1С она тоже действует, так что полезно немножко ее поизучать.

Можно взять любой учебник по любой базе данных и на первых же страницах это встретишь.

Насчет в данном случае что делать — напиши что вообще надо. Я не понял что людям нужно по жизни, чтобы у них в программе было (но точно не поля — сросшиеся близнецы). Когда это сформулируешь, то ответ может придти сам собой.

   insider

5 — 27.03.05 — 04:52

В справочнике сотр-ов оставим наименование (ФИО), оклад и что там еще надо, а в справочнике образование просто выставляем подчиненность справочнику сотр-ов, в наименовании проставишь образование… только вот зачем все это?

А вообще в (4) дан наиболее удачный совет — RTFM

   German

6 — 27.03.05 — 22:18

у меня есть документ.ПриемНаРаботу с реквизитом ФИО и оклад и справочник.Сотрудники с реквизитом оклад. Как сделать чтобы при приеме нового сотрудника и заполнении документа.ПриемНаРаботу значение ФИО добавлялось бы в справочник в колонку Наименование, а оклад в колонку оклад справочника ?

   ally

7 — 27.03.05 — 22:24

Мдаа 2-й день чел парится, а заглянуть полюбопытствовать в типовую лень. Что тут скажешь.

   Незнайка 1С

8 — 27.03.05 — 22:25

Посмотри в типовой бухгалтерии модуль документа (н формы) прием на работу.

   Незнайка 1С

9 — 27.03.05 — 22:25

Посмотри в типовой бухгалтерии модуль документа (не формы) прием на работу.

   German

10 — 28.03.05 — 09:49

там слишком сложно, обясните мне кодом здесь пожалуйста

   ally

11 — 28.03.05 — 09:50

еще один

   колодина

12 — 28.03.05 — 09:50

ну объясните уже человеку… что вам — трудно?

   German

13 — 28.03.05 — 09:52

да обясните как из документа добавить информацию в справочник ! ПОжалуйста !

   SnarkHunter

14 — 28.03.05 — 09:56

… — …

   German

15 — 28.03.05 — 10:03

плохой форум, новичку помочь не хотят в элементарных вещах, чтобы он с чего-то начал !

   колодина

16 — 28.03.05 — 10:05

а по-моему вам ответили нормально. ведь надо же и самому как-то думать… в этом нет ничег обидного.

   German

17 — 28.03.05 — 10:07

я зашел в тупик — помогите же !

   German

18 — 28.03.05 — 10:07

я зашел в тупик — помогите же !

  

колодина

19 — 28.03.05 — 10:10

так в какой тупик, я не понимаю? посмотрите в типовой и разберитесь внимательно. на форуме чаще всего отвечают на конкретные вопросы.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
&НаКлиенте
Процедура ПечатьТ7(Команда)
    ТекСтрока = Элементы.Отпуск.ТекущаяСтрока;
    Если ТекСтрока = Неопределено Тогда
        Предупреждение(НСтр("ru = 'Выберите отпуск!'"), 10);
        Возврат;
    КонецЕсли;
    ТЗ = Новый ТабличныйДокумент;
    ПечатьлистаТ7(ТЗ, ТекСтрока);                 
    ТЗ.ОтображатьЗаголовки = Ложь;
    ТЗ.ОтображатьСетку = Ложь;
    ТЗ.Показать();  
 
КонецПроцедуры
 
 &НаСервере    
Процедура ПечатьлистаТ7(ТЗ, ТекСтрока)     
    
      
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Основныесведенияосотруднике.НаименованиеОрганизации,
        |   Основныесведенияосотруднике.Датасоставления,
        |   Основныесведенияосотруднике.НомерДокумента,
        |   Основныесведенияосотруднике.КодОКПО,
        |   Основныесведенияосотруднике.ТекущаяДата,
        |   Основныесведенияосотруднике.Отпуск.(
        |       Ссылка,
        |       НомерСтроки,
        |       Количествокалендарныхднейотпуска,
        |       Должность,
        |       ОснованиеПереноса,
        |       ГодСостДок,
        |       СтруктурноеПодразделение,
        |       ДатаЗапланированная,
        |       ДатаФактическая,
        |       ДатаПредпологаемогоОтпуска,
        |       Примечание,
        |       ТабельныйНомер,
        |       ФИО,
        |   )
        |ИЗ
        |   Справочник.Основныесведенияосотруднике КАК Основныесведенияосотруднике
        |ГДЕ
        |   Основныесведенияосотруднике.Ссылка = &Ссылка";
        
        Запрос.УстановитьПараметр("Ссылка", ТекСтрока);
 
    Результат = Запрос.Выполнить();
 
    Выборка = Результат.Выбрать();
    
    СтрокаОтпуск = Объект.Отпуск.НайтиПоИдентификатору(ТекСтрока);
    
    Макет = ПолучитьОбщийМакет("ФорматТ7");
    Область101 = Макет.ПолучитьОбласть("Область101");
    Область102 = Макет.ПолучитьОбласть("Область102");
    Область103 = Макет.ПолучитьОбласть("Область103");
    Область104 = Макет.ПолучитьОбласть("Область104");
    
    ЗаполнитьЗначенияСвойств(Область101.Параметры, Объект); 
    ТЗ.Вывести(Область101);
    
    ЗаполнитьЗначенияСвойств(Область104.Параметры, Объект); 
    ТЗ.Вывести(Область104);
    
    ЗаполнитьЗначенияСвойств(Область102.Параметры, СтрокаОтпуск);
    ТЗ.Вывести(Область102);
    
    ЗаполнитьЗначенияСвойств(Область103.Параметры, Объект); 
    ТЗ.Вывести(Область103);
 
                
                    
        
 
 
            
    
    
    
КонецПроцедуры

Связи между справочниками

Автор LehaAres, 15 дек 2010, 09:16

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

Здравствуйте. Мне задали сделать АРМ, а знаний почти ноль.
Подскажите, как сделать связь между полями двух справочников, то есть:
Есть Справочник «Подразделения» с реквизитами «Код подразделения» и «Наименование подразделения».
Есть Справочник «Сотрудники» с реквизитами «Код сотр.», «Имя сотр.» и «Код подразделения».
Для реквизита «Код подразделения» во втором справочнике ставлю тип «СправочникСсылка.Подразделения». Это вообще правильно?
И ничего не работает. При заполнении второго справочника дохожу до графы «Код подразделения», нажимаю кнопку «обзор», открывается содержимое первого справочника, выбираю что-нибудь, а вместо кода в поле вставляются всего два символа: <>
Помогите решить эту глупую проблему. Пробовал уже и так, и сяк, и по-всякому, и всё впустую, а сроки жмут.

З.Ы. И маленький вопрос до кучи. Я смог в 1С прикрутить автоматический счетчик (заполнение с автоматическим увеличением на единицу) только для «стандартных» реквизитов справочников, но для самодельных он упрямо не работает. Это не возможно, или я опять туплю?


Цитата: LehaAres от 15 дек 2010, 09:16
Для реквизита «Код подразделения» во втором справочнике ставлю тип «СправочникСсылка.Подразделения». Это вообще правильно?

Правильно.

Цитата: LehaAres от 15 дек 2010, 09:16
И ничего не работает. При заполнении второго справочника дохожу до графы «Код подразделения», нажимаю кнопку «обзор», открывается содержимое первого справочника, выбираю что-нибудь, а вместо кода в поле вставляются всего два символа: <>

Так бывает, если у вас наименование выбранного элемента в справочнике подразделения пустое. Обратите внимание, что именно наименование отображается.

Цитата: LehaAres от 15 дек 2010, 09:16
З.Ы. И маленький вопрос до кучи. Я смог в 1С прикрутить автоматический счетчик (заполнение с автоматическим увеличением на единицу) только для «стандартных» реквизитов справочников, но для самодельных он упрямо не работает. Это не возможно, или я опять туплю?

Тут я не понял. Какой счетчик и где?


ЦитироватьОбратите внимание, что именно наименование отображается.

Воот! А можно ли сделать, чтобы отображался именнокод, да и вообще то поле, которое нужно мне, а не программе?

ЦитироватьТут я не понял. Какой счетчик и где?

В окне создания справочника есть закладка «нумерация», там галочка «автонумерация». Работает так: при заполнении справочника стандартное поле «Код» заполняется автоматически методом прибавления +1 к предыдущему значению. Всё это опять же работает только на стандартных реквизитах, а мне бы надо к своим это прикрутить. Возможно?


1. В принципе можно, но вот нужно ли? Если у вас все понимают кодовую идентификацию подразделений — так и используйте ее в наименовании.
2. В данном случае, думаю нужно через отдельный регистр.


Цитировать1. В принципе можно, но вот нужно ли? Если у вас все понимают кодовую идентификацию подразделений — так и используйте ее в наименовании.

К сожалению нужно. Я привел пример только простейшего случая, а там есть справочники и по 10 полей и по больше, и на все кто-нибудь ссылается. Изменить ничего нельзя, поскольку мне выдали готовую базу для MySQL Server, схему взаимосвязей между справочниками-таблицами и задание перегнать всё это 1:1 для 1С

Цитировать2. В данном случае, думаю нужно через отдельный регистр.

А как это?


Цитировать2. В данном случае, думаю нужно через отдельный регистр.

Хм, не нашел кнопку редактирования… Имеется ввиду регистр накопления? Тогда наверно лучше прочитаю «Предприятие 8.2 Практическое пособие разработчика», чем вас напрягать лишний раз :) Спасибо за подсказку.


Радченко все-таки почитать стоит :).

А вопросы задавайте, не стесняйтесь.

И все-таки, что вы хотите увидеть в выбранном поле?


Увы, всё оказалось намного хуже.

ЦитироватьЕсть Справочник «Подразделения» с реквизитами «Код подразделения» и «Наименование подразделения».
Есть Справочник «Сотрудники» с реквизитами «Код сотр.», «Имя сотр.» и «Код подразделения».
Для реквизита «Код подразделения» во втором справочнике ставлю тип «СправочникСсылка.Подразделения». Это вообще правильно?
И ничего не работает. При заполнении второго справочника дохожу до графы «Код подразделения», нажимаю кнопку «обзор», открывается содержимое первого справочника…

И здесь надо добавить: В окне, где показано содержимое второго справочника все значения поля «Наименование подразделения» просто пусты! Хотя в самом справочнике всё есть, всё забито. И соответственно вставляются те же два символа <> . В чем опять косяк может быть?

Как же меня достал уже этот капризный до невозможности механизм ссылок.


А, понял. Это так проявился её фирменный каприз, связанный со стандартными реквизитами! Она просто наплевала на моё собственное поле «Наименование подразделения» и смотрит в стандартное «Наименование», которое я вообще отключил и забросил. Ну почему! Почему всё так топорно!? Как выйти из этого порочного круга тотальной привязки к стандартным полям?


Как выйти? Например, изменив стандартную обработку в событии «НачалоВыбора» поля.


Теги:

  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • Связи между справочниками

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

  1. Главная
  2. Форум
  3. Для технических специалистов
  4. Как связать два реквизита ?

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Письмо в техподдержку 1С

отправить копию письма на мой адрес

отправить копию письма на адрес:

[Прочее]

Как связать два реквизита ?

izotovdv

Дата регистрации: 07.12.2004
Сообщений: 3

Как связать реквизит табличной части (справочник «Договоры») с<br><br>реквизитом шапки (справочник «Контрагенты»), чтобы после выбора<br><br>контрагента оставались только его договоры.

Квазимодо

Дата регистрации: 12.05.2004
Сообщений: 559

закладка Дополнительно «Связан с» укзываешь реквизит(справочник «контрагенты»)

Показывать по
10
20
40
сообщений

Вы здесь

Заполнение справочника частичными сведениями из другого справочника

Опубликовано вс, 05/04/2015 — 20:15 пользователем l2tp

Доброе время суток! Задача явно на 5 копеек, но пока не для меня. 

Итак. Имеем два справочника. Один  — перечень лекарственных средств с их описанием, другой при создании записей должен использовать сведения из первого. Т.е. как сделать, чтобы при выборе в форме элемента второго справочника наименования лекарства из первого справочника, в форму подтягивались связанные с этим наименованием поля? Какое событие используется? ПриИзменении или НачалоВыбора? Спасибо.

В прикладных задачах иногда возникают ситуации, когда элемент какого-нибудь справочника должен быть жестко подчинен элементу другого справочника. Например, у контрагентов могут существовать договоры, которые заключены с организацией, ведущей учёт. Тогда, экземпляр справочника Договоры контрагента должен быть подчинен справочнику Контрагенты, поскольку, мы не можем создать договор сам по себе, договор должен быть привязан к конкретному контрагенту. Для реализации подобных задач необходим подчиненный справочник 1С. В выше приведенном случае, справочник Договоры контрагента станет подчинен справочнику Контрагенты. А справочник Контрагенты будет являться владельцем справочника Договоры контрагента.

Конструируем подчиненный справочник 1С

Для того, чтобы из справочника 1С сделать подчиненный справочник, достаточно в редакторе справочника на закладке Владельцы указать владельца этого справочника.

Подчиненный справочник 1С

После этого, справочник с заполненным списком на закладке Владельцы станет подчиненный, а справочник (или справочники) из списка на этой закладке будут владельцами данного справочника.

Подчиненный справочник 1С

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

Если мы попробуем создать, элемент справочника ДоговорыКонтрагента, то поле, в котором следует указать контрагента-владельца будет обязательным для заполнения.

Подчиненный справочник 1С

Заметьте, это поле называется Владелец  и является стандартным реквизитом справочника.

Стандартный реквизит справочника 1С

Этот реквизит стал активным, тогда, когда мы указали владельца справочника на закладке Владельцы.

В тоже время, на форме элемента справочника-владельца появилась команда с названием подчиненного справочника.

Подчиненный справочник 1С

После выполнении этой команды, откроется форма списка с элементами подчиненного справочника, у которых владелец ссылка на открытый элемент справочника Контрагенты.

Подчиненный справочник 1С

Программное создание элемента подчиненного справочника

Разберем программное создание элемента подчиненного справочника. Оно выполняется при помощи метода менеджера справочник СоздатьЭлемент. Только, в случае подчиненных справочников обязательно нужно указать владельца!

Например, создадим обработку, на управляемой форме которой разместим реквизиты Владелец (тип ссылка на справочник Контрагент) и Название договора, а также команду Создать подчиненный справочник.

Форма обработки 1С

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

&НаСервере
Процедура СоздатьПодчиненныйСправочникНаСервере()
	
	НовыйДоговор = Справочники.ДоговорыКонтрагента.СоздатьЭлемент();
	НовыйДоговор.Наименование = НазваниеДоговора;
	НовыйДоговор.Владелец = Владелец;
	НовыйДоговор.Записать();
	
КонецПроцедуры

&НаКлиенте
Процедура СоздатьПодчиненныйСправочник(Команда)
	
	Если Не ПроверитьЗаполнение() Тогда 
		Возврат;
	КонецЕсли;
	
	СоздатьПодчиненныйСправочникНаСервере();
КонецПроцедуры

В клиентской процедуре используется проверка заполнения. Подробнее о проверке читайте в этой статье:

Проверка заполнения 1С

Выбор элементов подчиненного справочника на управляемой форме

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

Например, у документа Продажа товаров существуют реквизиты Контрагент  и Договор контрагента соответствующих типов.

Справочники 1С

Для того, чтобы в реквизите Договор контрагента  можно было выбрать только договоры указанного контрагента, следует в палитре свойств реквизита объекта у свойства Связи параметров выбора сделать настройку, в которой указать, что реквизит Контрагент используется при выборе значений в качестве владельца.

Справочники 1С

Справочники 1С

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

Справочники 1С

Если же мы создадим реквизит управляемой формы с ссылкой на подчиненный справочник, то у этого реквизита не будет такого же свойства, как и у реквизита объекта.

Реквизит управляемой формы 1С

Для того, чтобы отбор работал, следует у элемента формы, который связана с реквизитом для подчиненного справочника, заполнить свойство Связи параметров выбора.

Реквизит управляемой формы 1С

Поиск среди подчиненных справочников

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

Например, в случае поиска по наименованию, код будет следующим.

Договор = Справочники. ДоговорыКонтрагента.НайтиПоНаименованию(НазваниеДоговора,Истина,,Владелец);

Где НазваниеДоговора – это наименование элемента справочника, который ищется.

Владелец – это ссылка на справочник владелец.  

Подчиненный справочник 1С или табличная часть?

Часто возникает вопрос: чем отличается подчиненный справочника от табличной части. Основной ответ, тем что у элемента подчиненного справочника имеется ссылка на этот элемент, а у строки табличной части такой ссылки нет.

Подробно, о  том, что выбрать при разработке подчиненный справочник или табличную часть читайте по этой ссылке на сайте its.1c.ru:

Подчиненный справочник или табличная часть

Видео по теме:

Читайте также по теме:

Объект в 1С

Ссылка в 1С

Метаданные 1С

Документы в 1С

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Программировать в 1С за 11 шагов

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси
  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

Обновлено: 22.03.2023

Связь формы и элементов управления с данными

Основной причиной наличия этого раздела является то, что в 1С:Предприятии 8 экранные формы и элементы управления «отделены» от объектов конфигурации. Поэтому для того, чтобы создать обычную форму списка справочника или форму редактирования документа нужно их «связать» друг с другом. В большинстве случаев эту задачу решают конструктор формы или диалог «размещение данных», но необходимо понимать, какие именно действия при этом производятся. Тогда при необходимости их можно будет произвести вручную или подкорректировать результат работы конструктора.

На эту ситуацию можно посмотреть с двух сторон:

  • С одной стороны существуют привычные объекты конфигурации (как в версии 7.7), у них есть реквизиты и табличные части (тоже с реквизитами).
  • С другой стороны существуют такие объекты как «Форма» и элементы управления (поля ввода, табличные поля, флажки и т.д.).

Объект конфигурации (данные):


<= Связь =>

Экранная форма и элементы управления:

Необходимо понимать, что если форма принадлежит конкретному объекту конфигурации (т.е. отображается в списке «Формы» объекта), то этого недостаточно для реализации связи между элементами управления и данными. Более того, это даже необязательно. Вполне возможно создать общую форму, не принадлежащую ни одному из объектов конфигурации, которая будет отображать список элементов справочника или позволять редактировать конкретный документ. Другое дело, что такую форму нельзя будет назначить в качестве «основной» для определенных действий, но свою функцию она выполнять будет.

Чтобы какое-нибудь табличное поле в любой экранной форме отображало (и позволяло с ним работать) список элементов справочника, оно должно быть связано определенным образом с объектом типа «СправочникСписок.ИмяСправочника». В этой статье рассматривается, как настроить такую связь между формой с ее элементами управления и объектами конфигурации с их реквизитами и табличными частями.

Установка связи с данными производится путем создания реквизитов формы определенного типа и установки свойства «Данные» элементов управления и самой формы. Поясним это на простом примере. Допустим нужно создать форму списка справочника и форму элемента, но мы не будем пользоваться конструктором форм, а сделаем все вручную.

Создание формы списка

Создаем новую форму, принадлежащую справочнику «Номенклатура». При этом запускается конструктор и предлагает выбрать тип формы.

Выберем тип формы «Произвольная», в этом случае создается независимая форма, не связанная с данными. Заметьте, что у нее нет ни одного реквизита формы.

Внимание. Не путайте реквизиты формы и реквизиты объекта конфигурации , например, справочника или документа. Это разные понятия.

Создадим реквизит формы с именем «СпрСписок» и назначим ему тип «СправочникСписок.Номенклатура»:

Обратите внимание, что этот реквизит не является «основным» (он не выделен жирным шрифтом). Если у формы есть именно основной реквизит, то это сильно меняет поведение формы. Только в этом случае она может являться полноценной формой списка или формой элемента. Сделаем этот реквизит основным для формы. Для этого откройте свойства самой формы и заполните свойство «Данные» следующим образом:

Заметьте, что при указании свойства «Данные» автоматически изменилось и свойство «Тип значения». Если его сейчас изменить, то изменится тип основного реквизита формы. Мы этого делать не будем.

Если вы перейдете обратно на закладку «Реквизиты» формы, то увидите, что этот реквизит стал «основным» (выделен жирным шрифтом):

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

Например, у нашей формы списка справочника появились новые свойства, доступные из встроенного языка:

Перейдем теперь в диалог формы и разместим в рабочей области формы элемент управления «Табличное поле»:

В момент создания нового элемента управления у формы появился новый реквизит (в данном случае «ТабличноеПоле1» типа «ТаблицаЗначений»). Это пока еще не то, к чему мы стремимся, нам нужен динамический спсиок элементов справочника. Теперь нужно связать это табличное поле с реквизитом формы «СпрСписок», имеющим тип «СправочникСписок.Номенклатура». Для этого в свойствах табличного поля укажите свойство «Данные» следующим образом:

На этом этапе лучше сразу изменить имя элемента управления на что-нибудь более читабельное, например, «тпСписок». Но имя элемента управления в принципе ни на что не влияет, кроме случая, когда происходит обращение к элементу управления из модуля формы.

Заметьте, что свойство «Тип значения» для табличного поля стало недоступным. Это означает, что через свойства элемента управления нельзя изменить тип значения реквизита формы. Также заметьте, что в после установки свойства «Данные» произошли некоторые изменения с формой и ее реквизитами:

  • Были созданы колонки «Код» и «Наименование» табличного поля «тпСписок». Эти колонки были автоматически связаны с реквизитами справочника (через свойство колонки «Данные»). Естественно, что это можно было сделать и вручную.
  • Была заполнена верхняя вспомогательная командная панель (замечание: точнее для командной панели было установлено свойство «АвтоЗаполнение», поэтому теперь она будет содержать стандартный набор кнопок, определяемый типом основного реквизита формы)
  • Реквизит формы «ТабличноеПоле1» был удален.

Теперь в форме есть все необходимое для того, чтобы служить формой списка элементов справочника. Зададим заголовок для формы «Список Номенклатура» и назначим эту форму в качестве основной формы списка, чтобы она открывалась по умолчанию:

Теперь можно запустить «1С:Предприятие» и проверить работу формы:

Создание формы элемента

Теперь создадим форму элемента для этого справочника. Мы опять не будем пользоваться конструктором, а продемонстрируем, как создаются такие формы вручную. Это будет очень полезным, чтобы понимать, что именно делает конструктор.

Создайте новую форму, принадлежащую справочнику. При создании формы укажите тип формы «Произвольная», затем можно задать для нее имя «ФормаЭлементаНовая». Будет создана следующая экранная форма:

Перейдите на закладку «Реквизиты» и создайте новый реквизит формы с именем «СпрОбъект» и типом «СправочникОбъект.Номенклатура».

Этот реквизит пока не является основным реквизитом формы, потому что он не указан в свойстве «Данные» самой формы. Сделаем это. Откройте свойства формы и заполните свойство «Данные» (тип значения будет заполнен автоматически):

Если в палитре свойств изменить «Тип значения», то изменится тип значения реквизита формы. Сейчас этого делать не нужно.

После указания свойства «Данные» реквизит «СпрОбъект» стал основным реквизитом формы. Так как он имеет тип «СправочникОбъект.Номенклатуры», то это значительно изменило поведение формы, в частности следующие аспекты:

  • Изменился потенциальный состав кнопок командных панелей формы (верхней вспомогательной и нижней). Чтобы в верхней командной панели отображался набор кнопок, нужно в ее свойствах снять, а затем опять установить флажок «Автозаполнение». Далее добавьте кнопки ОК, Записать и Закрыть в нижнюю командную панель. Кнопка ОК будет выполнять действия «Записать и Закрыть» и она будет являться кнопкой по умолчанию (выделена жирным шрифтом и срабатывает по Ctrl-Enter). Чтобы выводились надписи и картинки, нужно для каждой кнопки соответствующим образом задать свойство «Отображение». В итоге форма приобретет следующий вид:
  • Расширился состав свойств, методов и событий контекста формы в соответствии с «расширением формы элемента справочника»:

Внимание: не путайте события формы «ПередЗаписью» и «ПриЗаписи», а также одноименные события объекта типа «СправочникОбъект». События формы возникают только при интерактивных действиях из этой формы. Нужно иметь в виду, что элемент справочника может быть также записан программно с помощью метода Записать().

Теперь разместим диалоге формы элементы управления для редактирования элемента справочника. Поместите в форму поле ввода и рядом с ним надпись «Наименование»:

В свойствах поля для ввода наименования установите свойство «Данные», связав его с реквизитом «Наименование» объекта «СпрОбъект»:

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

Аналогичным образом можно разместить в диалоге формы остальные поля ввода и другие элементы управления и связать их с соответствующими реквизитами и табличными частями справочника.

Обратите внимание, что когда назначен основной реквизит формы, то можно воспользоваться кнопкой «Размещение данных» , которая автоматически настраивает связь элементов формы с данными. При ее нажатии появляется следующее окно:

Это окно содержит список реквизитов и табличных частей объекта конфигурации, который назначен в качестве основного реквизита формы. В колонке «Данные» установите пометку для тех реквизитов, которые необходимо разместить в форме. Если диалог вызывается повторно, то пометки установлены для элементов управления, уже расположенных в форме, и если снять пометку, то элемент управления будет удален. В колонке «Элементы формы» можно выбрать тип элемента управления, возможный для данного реквизита. Например, для реквизитов типа «булево» обычно выбирается флажок.

С помощью автоматического или ручного размещения элементов управления в форме постарайтесь, чтобы она приобрела следующий вид:

Осталось назначить эту форму в качестве основной формы элемента справочника и можно проверять ее работу:

Таким образом, механизм связи между элементами формы и реквизитами (табличными частями) объекта конфигурации позволяет легко настроить общепринятые режимы работы с формами, а также реализовать новые проектные решения, используя гибкие возможности технологической платформы 1С:Предприятия 8.

Дата публикации 04.10.2019

Использован релиз 3.0.73

Для группового изменения реквизитов документов или элементов справочников в программе необходимо выделить в списке эти документы / элементы справочника, открыть правой кнопкой мыши контекстное меню и выбрать команду «Изменить выделенные. «, в открывшейся форме отметить флажками реквизиты, которые нужно изменить, и указать их новое значение, выполнить изменение по кнопке «Изменить выделенные».

Рассмотрим механизм группового изменения реквизитов на примере изменения покупателя в документах «Счет на оплату» (реквизит «Контрагент»):

  1. Раздел: Продажи – Счета покупателям.
  2. Выделите в списке документы (рис. 1), у которых необходимо изменить значение реквизита, правой кнопкой мыши откройте контекстное меню и выберите команду «Изменить выделенные . «. Чтобы выделить несколько документов, нажмите и удерживайте на клавиатуре клавишу Shift (для выбора документов в одном диапазоне) или Ctrl (для выбора отдельных документов) и отмечайте мышью нужные документы.
  3. В открывшейся форме «Изменение выделенных элементов» на закладке «Реквизиты» (рис. 2) найдите реквизит, который подлежит изменению (в нашем примере «Контрагент»), и установите флажок в колонке .
  4. В колонке «Новое значение» (рис. 2) укажите новое значение реквизита. Если необходимо задать пустое значение, то нужно включить флажок в колонке , а колонку «Новое значение» оставить незаполненной. Одновременно можно менять несколько реквизитов.
  5. Обратите внимание, что все реквизиты следует менять с большой осторожностью, а некоторые вообще не стоит менять:
    • если изменить реквизиты табличной части документа / справочника (на закладках формы «Изменение выделенных элементов», отличных от закладки «Реквизиты»), то новое значение будет подставлено во все строки табличной части документа / справочника;
    • если изменить цифровой реквизит документа / справочника (в том числе из табличной части), то реквизиты, зависящие от измененного, не будут пересчитаны;
    • если изменить реквизит документа / справочника (в том числе из табличной части), который зависит от других реквизитов (например, договор зависит от контрагента и организации), то будет нарушена корректность данных и ссылочная целостность информационной базы.
  6. В списке реквизитов в форме «Изменение выделенных элементов» могут быть реквизиты, по умолчанию недоступные для изменения и отображающиеся серым цветом. Это «ключевые» реквизиты, которые могут повлиять на другие объекты (списки, документы, справочники и др.), поэтому они защищены от случайных изменений. При попытке ввода новых значений для этих реквизитов программа предлагает их разблокировать. Если это необходимо, подтвердите свой выбор по кнопке «Да».
  7. По кнопке «Изменить реквизиты» изменения будут сохранены, а проведенные документы будут перепроведены (в примере на рис. 1 в колонке «Контрагент» – первоначальное значение покупателя, на рис. 3 – значение после изменения).

Дополнительно в форме «Изменение выделенных элементов» можно (рис. 4):

  1. С помощью кнопки «Ранее измененные реквизиты» выбрать настройки группового изменения, которые применялись для данного списка ранее.
  2. С помощью кнопки «Дополнительные параметры» настроить определенные условия по изменению объектов:
    1. Флажок «Изменять в транзакции» включает обработку данных в транзакции. Это означает, что если в процессе сохранения не удалось сохранить один из объектов по каким-либо причинам (например, потому что объект редактируется в это же время другим пользователем), то будут отменены изменения во всех выбранных объектах. По умолчанию флажок «Изменять в транзакции» включен.
    2. Флажок «Прерывать по ошибке» включен по умолчанию. В этом случае если сохранение объекта по каким-либо причинам невозможно, программа выдаст предупреждение и предложит продолжить изменение оставшихся объектов либо прервать обработку для выяснения причин проблемы. Если флажок не включен (это возможно при снятом флажке «Изменять в транзакции») и при этом один из объектов не удалось сохранить, то такой проблемный объект будет пропущен, а обработка остальных данных будет продолжена.

    Смотрите также

    Критерии отбора в 1С – это некоторый объект в метаданных, при помощи которого можно производить отборы информации внутри базы системы 1С по представленным параметрам поиска – условиям. Можно сказать, что критерии отбора – это сводка правил, согласно которым может быть произведён выбор информации по некоторому условию в пользовательском режиме.

    Рассмотрим, как происходит отбор в журнале по критерию «Контрагент»:

    Рис. 1 Отбор по критерию «Контрагент»

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

    Рис. 2 Перейти к иерархическому списку связанных документов в 1С

    Рассмотрим, как происходит работа связанных критериев отбора в системе 1С. Запустим 1С как «Конфигурато и откроем в метаданных раздел с критериями, как показано ниже:

    Рис. 3 Раздел с критериями отбора в 1С

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

    Как пример, в «ДокументыПоКонтрагенту» – тип «СправочникСсылка.Контрагенты», отбору «ДокументыСотрудников» соответствует тип «СправочникСсылка.ФизическиеЛица», как можно увидеть на скриншотах ниже:

    Рис. 4 Использование критериев отбора данных

    Рис. 5 Пример с критериями отбора в 1С

    Стоит учесть, что можно прописывать любой тип или же определять объект по древу конфигурации, указывая некоторую произвольную ссылку:

    Рис. 6 Использование критериев отбора в 1С с произвольной ссылкой

    Удобство критериев отбора данных заключается в том, что внутри критерия можно задействовать и реквизиты из различных таблиц.

    Во вкладке «Состав» видны элементы, для которых соответствуют данные того типа, который был прописан для работы критерия отбора. В данном окне нужно проставить «галочки» около элементов, при помощи которых производится отбор. Как только данный перечень будет указан, отбор начнёт работать.

    Рис. 7 Работа критерия отбора

    Видов критериев по отбору может быть много, но для работы с ними необходимо создание форм, которые в последствии можно помещать на панель с инструментами и в меню пользователя. Критерии всех выделенных объектов можно будет просматривать, кликнув на «Ещё».

    Рис. 8 Форма критериев отбора в 1С

    2. Пример создания отбора в 1С 8

    Рассмотрим на примере создание отбора в 1С 8. Создадим «ДокументыПоНоменклатуре», кликнув на «Добавить», как показано на скриншоте с примером ниже:

    Рис. 9 Создание отбора в 1С 8

    На вкладке «Данные» прописываем его тип «СправочникСсылка.Номенклатура».

    На вкладке «Состав» нужно проверить всю документацию и около необходимой проставить «галочки» в «Номенклатура». Это и есть те элементы, при помощи которых происходит отбор.

    Рис. 10 Выбор элементов для отбора в 1С 8

    Также стоит отметить, что для работы отбора в 1С 8 необходимо, чтобы он находился на рабочем экране у пользователя. Находим на древе справочник «Номенклатура», после чего открываем форму для элемента. На вкладке «Командный интерфейс» устанавливаем «галочку» около строки «Документы по номенклатуре», как показано на скриншоте ниже:

    Рис. 11 Критерий отбора в 1С ДокументыПоНоменклатуре

    Далее запускаем команду «Обновить конфигурацию базу данных» и делаем сверку работы отбора. Запускаем любой из элементов внутри справочника «Номенклатура» и переходим на ссылку «Ещё», где находится строка «Документы по номенклатуре», как можно увидеть ниже:

    Рис. 12 Проверка работы отбора в 1С 8

    Кликаем на вышеописанную ссылку, после чего появится перечень документов, внутри которых содержится выбранная позиция:

    Рис. 13 Список документов с критерием отбора в 1С

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

    3. Связанные документы в 1С 8.3

    Теперь, как только основные понятия были закреплены, можно перейти к основной теме статьи – связанным документам. Связанные документы в 1С 8.3 работают по схожему принципу. Связи между документами можно увидеть, нажав на «Перейти к иерархическому списку связанных документов». Данная кнопка располагается на панели с инструментами, как показано ниже на скриншоте:

    Рис. 15 Связанные документы в 1С 8.3

    Чтобы связи между документами отображались и у пользователя, необходимо в настройках для критериев отбора «СвязанныеДокументы», которые находятся во вкладке «Данные», определить перечень нескольких связанных между собой документов, как продемонстрировано ниже:

    Рис. 16 Перечень нескольких связанных между собой документов

    Также на панели «Состав» определить те документы, которые могут стать документами-основаниями для других:

    Рис. 17 Запрос связанные документы

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

    Дополнительные реквизиты в 1С УТ используются для возможности настройки хранения дополнительных полей в справочниках и документах программы. Их добавление выполняется в пользовательском режиме и не требует изменения конфигурации.

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

    Далее разберем примеры добавления и работы с дополнительными реквизитами в 1С УТ 11.

    В первую очередь необходимо включить настройки.

    1. Настройки 1С УТ 11

    Первый флаг (см. скриншот) отвечает в целом за доступность ведения в базе 1С 8.3 УТ 11 дополнительных реквизитов.

    Второй флаг отвечает за возможность ведения реквизитов с общим список значений. Данную настройку можно включить, например, если в справочник «Клиенты» необходимо добавить реквизит «Регион клиента», в справочник «Поставщики» – «Регион поставщика», при этом для обоих дополнительных реквизитов должен использоваться единый список значений – Федеральные округа РФ.

    Активация функции «Общие реквизиты и сведения» дает возможность создавать дополнительные реквизиты в 1С УТ сразу для нескольких справочников. Например, создать реквизит «Категория надежности», который будет использоваться и для клиентов, и для поставщиков.

    Настройки использования реквизитов в 1С 8.3 УТ 11 могут быть различными. Использовать ли общие наборы, общие списки и, если да, то как именно – зависит от потребностей пользователя и банального удобства работы. Примеры, которые будут описаны далее, приведены для общего понимания работы с возможностями конфигурации в части использования реквизитов.

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

    2. Как добавить новый реквизит в 1С

    Добавим новый реквизит в 1С, не связанный с другими реквизитами и посмотрим, какие данные можно указать в нем. Например, в справочник «Физические лица» добавим реквизит «Подразделение».

    В левой части окна программы надо выбрать объект системы, к которому добавляется реквизит (в нашем случае это «Физические лица») и нажать кнопку «Добавить → Новый».

    В открывшемся окне заполняем «Наименование» и «Тип значения».

    Тип значения определяет тип используемых данных в новом реквзите 1С. Типы данных могут быть различными. Из можно распределить по группам:

    · дата, строка, число – точные заполняемые значения;

    · булево в 1С – значение «Да» или «Нет» (в форме представляет собой поле для установки флажка);

    · дополнительное значение – используется для ввода списка нужных значений;

    · Организация, Партнер, Статья доходов и т.д – используется для выбора значения из действующих справочников.

    Здесь же можно использовать сразу несколько типов данных, установив флаг «Составной тип данных».

    В нашем примере нам надо выбрать тип данных «Подразделения». Тогда в карточке физического лица будет доступны к выбору данные справочника «Структура педприятия».

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

    При необходимости для реквизита можно внести дополнительные настройки:

    · если установить флаг «Выводить в виде гиперссылки», то после заполнения реквизита значение будет представлено в ввиде ссылки;

    · возможно сделать настройку критериев видимости и доступности реквизита по форме в зависимости от выполнения условий;

    · можно установить обязательность заполнения данного реквизита в целом или при выполнении каких-либо условий;

    · для поля можно установить всплывающую подсказку о его назначении.

    Рассмотрим другой пример. Представим, что все договоры должны быть согласованы ответсвенным лицом, которое в базе не работает. Менеджер, ведущий контрагента, отправляет договоры на согласование по почте, скайпу и т.п., а в базе должен отметить лишь результат: согласовано и дата.

    В этом случае у нас задействован один объект системы («Договоры с контрагентами») и два реквизита: «согласовано» (да/нет) и «дата согласования».

    Реквизит 1 – тип данных «булево в 1С».

    Реквизит 2 – тип даннх «дата». Здесь также надо указать состав даты.

    Сохраним реквизиты и проверим результат – в карточке договора должен появиться раздел с этими реквизитами.

    Добавление нового реквизита и его заполнение рассмотрели. Перейдем к более сложному варианту.

    3. Реквизиты 1С УТ с общим списком

    Допустим, для покупателей надо добавить реквизит «Регион клиента», для поставщиков реквизит «Регион поставщика». Названия реквизитов разные, но список значений един – Федеральные округа РФ.

    Удобство этого варианта заключается в том, что нет необходимости дважды заполнять перечень значений. При создании списка в одном реквизите он тотчас будет доступен и для второго, а при добавлении/редактировании/удалении данных в одном реквизите все изменения также отразятся в списке второго.

    Добавим реквизит для клиентов. Создаем новый, указываем тип «Дополнительные значения» и вносим список значений. Заполнять его на этом этапе не обязательно. Позже список значений можно будет дополнить непосредственно из объекта системы. Но сейчас внесем его, чтобы наглядно увидеть отражение общего списка и во втором реквизите.

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

    Нажимаем «Добавить → Из другого набора». В открывшемся окне находим и выделяем созданный ранее реквизит для клиента и нажимаем «Далее».

    Выбираем вариант «Сделать копию реквизита по образцу (с общим списком значений)» и нажимаем «Далее».

    В созданном реквизите уже определен тип данных и заполнен перечень значений. Остается только присвоить наименование.

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

    4. Общие реквизиты в 1С

    Сделать реквизиты общими (единое название и единый список значений для нескольких объектов) можно следующим образом:

    ввести реквизит для одного объекта;

    добавить реквизит из набора первого объекта и сделать его общим.

    Все добавленные реквизиты после их записи становятся доступными в соответствующих объектах системы.

    5. Отображение реквизитов в отчетах 1С и списках

    Для удобства работы реквизиты можно вывести в список объектов и добавить в настройки отчетов.

    Например, выведем реквизит «Согласовано», описанный выше, в справочник.

    Открываем меню «Еще → Изменить форму». В списке полей выделяем строку «Ссылка» и нажимаем кнопку «Добавить поле». В предложенном списке выбираем «Согласовано (Договоры с контрагентами)» и нажимаем «ОК».

    В списке полей добавится выбранный реквизит. Перемещаем его вверх, меняем заголовок и нажимаем «ОК».

    Колонка добавлена в список, теперь по ней можно осуществлять поиск.

    Также для примера выведем дополнительный реквизит в отчет 1С «Задолженность клиентов» – категорию клиента.

    Открываем «Настройки», выбираем вид «Расширенный» и добавляем новое поле. В окне выбора поля разворачиваем поле «Клиент», после чего разворачиваем список «Дополнительные реквизиты» и выбираем «Категория».

    Поле добавлено в отчет. Также это поле можно включить в отборы или в общую структуру отчета.

    Читайте также:

        

    • Регулярные выражения в excel
    •   

    • Как подключить mysql к visual studio code
    •   

    • Что такое драйверы утилиты
    •   

    • Хорошая программа для принтера canon
    •   

    • Как переименовать столбцы в сводной таблице excel

Понравилась статья? Поделить с друзьями:
  • Как связаться с транспортной компанией dpd
  • Как сказать на английском проехали неважно
  • Как скачать банковские реквизиты сбербанка
  • Как скачать игру компания героев бесплатно
  • Как скачать кудир в сбербанк бизнес онлайн