Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
1

Загрузка в Справочник

12.02.2016, 11:26. Просмотров 1193. Ответов 53
Метки нет (Все метки)

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

Вот часть кода
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
КодУслуг=ExcelЛист.Cells(Строка, 1).Value;
            Наименование=ExcelЛист.Cells(Строка, 2).Value;
            Ценна=ExcelЛист.Cells(Строка, 3).Value;
            
            ОчиститьСообщения();
            Спр=Справочники.Номенклатура.НайтиПоНаименованию(КодУслуг);
            Если Спр.Пустая()=Истина Тогда 
                НовЭл = Справочники.Номенклатура.СоздатьЭлемент();       
                НовЭл.КодУслуги=КодУслуг;
                НовЭл.Наименование=Наименование;
                НовЭл.Записать();
            
        Иначе
            Сообщить("Уже создан");
                КонецЕсли;
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2016, 11:26
Ответы с готовыми решениями:

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

Загрузка в Справочник
Написал код для загрузки в справочник, начинаю загружать зависает, подскажите что не так? Перем...

Загрузка данных из Excel в справочник 1С
Здравствуйте. Очень нужна помощь. У меня есть exel файл с очень нестандартным оформлением столбцов,...

Передача данных: Справочник <-> Документ <-> Справочник
Доброго все времени суток! я в 1С новичек, помогите пожалуйста Я понимаю, что на многие вопросы...

Загрузка Адреса Из Файла *.dbf В Справочник "физические Лица"
Подскажите, пожалуйста, может быть кто-нибудь сталкивался. Загружаю из *.dbf -файла строку с...

53
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
21.03.2016, 17:23 41
Ermak27, условия менять.

Добавлено через 3 минуты
Ermak27, можно еще погуглить, что такое конъюнкция, дизъюнкция и т.д.
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
22.03.2016, 14:35  [ТС] 42
GreenkO, можете пример показать
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
22.03.2016, 14:37 43
Ermak27, пример чего?
0
Phil
22.03.2016, 14:41
  #44

Не по теме:

GreenkO, как гуглить :)

0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
22.03.2016, 14:52  [ТС] 45
GreenkO, Вы пишите что условие можно сменить, можно пример как будет выглядить условие по другому если мне нужно проверить Спр.ФИО<>ФИО
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
22.03.2016, 16:03 46
Ermak27, так и проверяйте. Вы уверены, что если коды не равны вам надо изменять ФИО?
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
23.03.2016, 11:31  [ТС] 47
GreenkO, я сделал чтобы сработало это условие

1C
1
2
3
4
5
6
7
        Если СтрТЗ.Код=КодЛС и СтрТЗ.ФИО<>ФИО Тогда
                СправочникОбъект = СтрТЗ.Ссылка.ПолучитьОбъект();
                СправочникОбъект.ФИО=ФИО;
                СправочникОбъект.Записать();
            ИначеЕсли СтрТЗ.Код=КодЛС и СтрТЗ.ФИО=ФИО Тогда 
                Прервать;
            КонецЕсли;
В отладчике вижу что СтрТЗ.Код=КодЛС а СтрТЗ.ФИО<>ФИО, почему не срабатывает СправочникОбъект = СтрТЗ.Ссылка.ПолучитьОбъект(); непонятно.
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
23.03.2016, 12:11 48
Ermak27, вы писали ранее, что у вас СтрТЗ.Код=КодЛС -> Ложь, СтрТЗ.ФИО<>ФИО ->Истина. Сейчас так же?
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
23.03.2016, 12:43  [ТС] 49
GreenkO, в отладчике пытаюсь посмотреть опять и не понимаю, почему то когда только должно быть условие СтрТЗ.Код=КодЛС и СтрТЗ.ФИО<>ФИО происходит выход, даже не проверяя это условие. Почему так?

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

Добавлено через 4 минуты
GreenkO, все понял в чем дело, у меня стоит первое условие такое

1C
1
2
3
4
5
6
7
            Если СтрТЗ.Код=КодЛС и СтрТЗ.Наименование<>Адрес Тогда
                СправочникОбъект = СтрТЗ.Ссылка.ПолучитьОбъект();
                СправочникОбъект.Наименование=Адрес;
                СправочникОбъект.Записать();
            ИначеЕсли СтрТЗ.Код=КодЛС и СтрТЗ.Наименование=Адрес Тогда  
                Прервать; 
            КонецЕсли;
вот проходя это условие срабатывает СтрТЗ.Код=КодЛС и СтрТЗ.Наименование=Адрес (это правильно) и сразу выход Прервать; . И как тогда быть? Ранее речь шла
Цитата Сообщение от Ermak27 Посмотреть сообщение
GreenkO, почему то не сработало. Я в отладчике проверил когда СтрТЗ.Код=КодЛС и СтрТЗ.Наименование=Адрес продолжился дальше поиск СтрТЗ.Код а должен был прерваться. Может я конечно не так что то сделал, идея такая, если СтрТЗ.Код=КодЛС а СтрТЗ.Наименование<>Адрес тогда перезаписываем Наименование а если СтрТЗ.Наименование=Адрес тогда прекращаем и ищем по другому КодЛС
и мы решили прерывать, что делать тогда
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
23.03.2016, 13:44 50
Ermak27, прописать условие по коду и ФИО в то же условие, где прерывание происходит, но перед ним.
Цитата Сообщение от Ermak27 Посмотреть сообщение
и мы решили прерывать, что делать тогда
Это вы решили, что надо прерываться)

1C
1
2
3
4
5
6
7
8
9
            Если СтрТЗ.Код=КодЛС и СтрТЗ.Наименование<>Адрес Тогда
                СправочникОбъект = СтрТЗ.Ссылка.ПолучитьОбъект();
                СправочникОбъект.Наименование=Адрес;
                СправочникОбъект.Записать();
            ИначеЕсли СтрТЗ.Код = КодЛС И СтрТЗ.ФИО <> ФИО Тогда
//..тут код
            ИначеЕсли СтрТЗ.Код=КодЛС и СтрТЗ.Наименование=Адрес Тогда  
                Прервать; 
            КонецЕсли;
0
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
25.03.2016, 09:00  [ТС] 51
GreenkO, что то он не так делает. Должен найти код, проверить его, внести изменения если они есть и переходить к следующему кому, а он по всему справочнику бежит, это очень долго будет. У меня 46000 лицевых счетов

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
25
26
27
28
29
30
31
32
33
34
35
36
37
Для Каждого СтрТЗ из ТЗ Цикл
            Номер=Номер+1;          
            Если СтрТЗ.Код=КодЛС и СтрТЗ.Наименование<>Адрес Тогда
                СправочникОбъект = СтрТЗ.Ссылка.ПолучитьОбъект();
                СправочникОбъект.Наименование=Адрес;
                СправочникОбъект.Записать();
            ИначеЕсли СтрТЗ.Код=КодЛС и СтрТЗ.КороткийАдрес<>КороткийАдресБ Тогда
                СправочникОбъект = СтрТЗ.Ссылка.ПолучитьОбъект();
                СправочникОбъект.КороткийАдрес=КороткийАдресБ;
                СправочникОбъект.Записать();
            ИначеЕсли СтрТЗ.Код=КодЛС и СтрТЗ.ФИО<>ФИО Тогда
                СправочникОбъект = СтрТЗ.Ссылка.ПолучитьОбъект();
                СправочникОбъект.ФИО=ФИО;
                СправочникОбъект.Записать();
            ИначеЕсли СтрТЗ.Код=КодЛС и СтрТЗ.Телефон<>ТЕЛЕФОН Тогда
                СправочникОбъект = СтрТЗ.Ссылка.ПолучитьОбъект();
                СправочникОбъект.Телефон=ТЕЛЕФОН;
                СправочникОбъект.Записать();
            ИначеЕсли СтрТЗ.Код=КодЛС и СтрТЗ.Участок<>УЧАСТОК Тогда
                СправочникОбъект = СтрТЗ.Ссылка.ПолучитьОбъект();
                СправочникОбъект.Участок=Справочники.Участки.НайтиПоНаименованию(УЧАСТОК);
                СправочникОбъект.Записать();
            ИначеЕсли СтрТЗ.Код=КодЛС и СтрТЗ.Персонал<>ПЕРСОНАЛ Тогда              
                Если ПЕРСОНАЛ=1 Тогда
                    СправочникОбъект = СтрТЗ.Ссылка.ПолучитьОбъект();
                    СправочникОбъект.Персонал=Истина;
                    СправочникОбъект.Записать();
                ИначеЕсли ПЕРСОНАЛ=0 Тогда
                    СправочникОбъект = СтрТЗ.Ссылка.ПолучитьОбъект();
                    СправочникОбъект.Персонал=Ложь;
                    СправочникОбъект.Записать();
                КонецЕсли;
            ИначеЕсли СтрТЗ.Код=КодЛС и СтрТЗ.Наименование=Адрес Тогда  
                Прервать;   
            КонецЕсли;
            Состояние("Номер: "+Номер);
        КонецЦикла;
Добавлено через 3 часа 50 минут
Сделал так
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
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
Функция Загрузка () Экспорт
    ИмяФайлаДанных="\\Ftp\ftp\ExportWindows\export.dbf";
    ФайлДБФ = Новый XBASE;
    ФайлДБФ.Кодировка = КодировкаXBase.OEM;
    ФайлДБФ.ОткрытьФайл(ИмяФайлаДанных);
    ФайлДБФ.Первая();
    Номер=0;
    ТЗ=Новый ТаблицаЗначений;
    Запрос = Новый Запрос("ВЫБРАТЬ
    |   ЛицевыеСчетаАбонентовГРО.Код,
    |   ЛицевыеСчетаАбонентовГРО.Наименование,
    |   ЛицевыеСчетаАбонентовГРО.ФИО,
    |   ЛицевыеСчетаАбонентовГРО.Телефон,
    |   ЛицевыеСчетаАбонентовГРО.КороткийАдрес,
    |   ЛицевыеСчетаАбонентовГРО.Персонал,
    |   ЛицевыеСчетаАбонентовГРО.Участок,
    |   ЛицевыеСчетаАбонентовГРО.Оборудование.(
    |       Ссылка,
    |       НомерСтроки,
    |       Тип,
    |       Модель,
    |       Дата
    |   ),
    |   ЛицевыеСчетаАбонентовГРО.Долги.(
    |       Ссылка,
    |       НомерСтроки,
    |       Услуга,
    |       СуммаОстаток
    |   ),
    |   ЛицевыеСчетаАбонентовГРО.Ссылка
    |ИЗ
    |   Справочник.ЛицевыеСчетаАбонентовГРО КАК ЛицевыеСчетаАбонентовГРО");
    ТЗ = Запрос.Выполнить().Выгрузить();    
    
    Пока НЕ ФайлДБФ.ВКонце() Цикл
        Номер=Номер+1;
        ЛС = ФайлДБФ.ПолучитьЗначениеПоля("LSHET");
        ФИО = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("FIO"));
        РАЙОН = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("PUNKT"));
        УЛ = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("STREET"));
        ДОМ = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("HOUSE"));
        БУК = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("HOUSEPSTFX"));
        КОРП = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("KORPUS"));
        КВ = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("FLAT"));
        КОМ = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("KOMN"));
        ПЛИТА = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("PLITA"));
        КОЛОНКА = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("KOLONKA"));
        ТЕЛЕФОН = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("TELEPHONE"));
        ТО_ПЛИТА = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("TO_PLITA"));
        ТО_КОЛОНКА = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("TO_KOLONKA"));
        ДОЛГГАЗ = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("DOLG_GAZ"));
        ДОЛГТО = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("DOLG_TO"));
        УЧАСТОК = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("AREA"));
        ПЕРСОНАЛ = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("PERSONAL"));
        
        Если КОМ="0" Тогда
            КОМ=" ";
        Иначе
            КОМ=", К" + КОМ;
        КонецЕсли;      
        Если КОРП="" Тогда
            КОРП="";
        Иначе
            КОРП=", Корп" + КОРП;
        КонецЕсли;
        Если ДОМ="" Тогда
            ДОМ="";
        Иначе
            ДОМ=" д. " + ДОМ;
        КонецЕсли;
        Если КВ="" Тогда
            КВ="";
        Иначе
            КВ="кв. " + КВ;
        КонецЕсли;
        Адрес=РАЙОН + "," + " " + УЛ + ","+ ДОМ + БУК + КОМ + "," + КВ + КОРП;
        КороткийАдресБ=УЛ + ","+ ДОМ + БУК + КОМ + "," + КВ + КОРП;
        КодЛС=Число(ЛС);
        Если ТЗ.Найти(КодЛС,"Код")=Неопределено Тогда
            НовЭл = Справочники.ЛицевыеСчетаАбонентовГРО.СоздатьЭлемент();
            НовЭл.Код=ЛС;
            НовЭл.КороткийАдрес=КороткийАдресБ;
            НовЭл.Наименование=Адрес;
            НовЭл.ФИО=ФИО;
            НовЭл.Телефон=ТЕЛЕФОН;
            НовЭл.Участок=Справочники.Участки.НайтиПоНаименованию(УЧАСТОК);
            
            Если ПЕРСОНАЛ=1 Тогда
                НовЭл.Персонал=Истина;
            ИначеЕсли ПЕРСОНАЛ=0 Тогда
                НовЭл.Персонал=Ложь;
            КонецЕсли;
            
            Если ЗначениеЗаполнено(ПЛИТА) Тогда
                Стр=НовЭл.Оборудование.Добавить();
                Стр.Модель=ПЛИТА;
                Стр.Дата=ТО_ПЛИТА;
                Стр.Тип=Перечисления.ВидОборудования.ГазоваяПлита;
            КонецЕсли;  
            Если ЗначениеЗаполнено(КОЛОНКА) Тогда
                Стр=НовЭл.Оборудование.Добавить();
                Стр.Модель=КОЛОНКА;
                Стр.Дата=ТО_КОЛОНКА;
                Стр.Тип=Перечисления.ВидОборудования.ГазоваяКолонка;
            КонецЕсли;
            Если ЗначениеЗаполнено(ДОЛГГАЗ) Тогда
                Стр=НовЭл.Долги.Добавить();
                Стр.Услуга=Справочники.Номенклатура.Газоснабжение;
                Стр.СуммаОстаток=ДОЛГГАЗ;
            КонецЕсли;  
            Если ЗначениеЗаполнено(ДОЛГТО) Тогда
                Стр=НовЭл.Долги.Добавить();
                Стр.Услуга=Справочники.Номенклатура.Техобслуживание;
                Стр.СуммаОстаток=ДОЛГТО;
            КонецЕсли;  
            Состояние("Загрузка данных Абонент ГРО = "+ Номер);     
            НовЭл.Записать();
        КонецЕсли;
        
        Для Каждого СтрТЗ из ТЗ Цикл
            СправочникОбъект = СтрТЗ.Ссылка.ПолучитьОбъект();
            Если СтрТЗ.Код=КодЛС и СтрТЗ.Наименование<>Адрес Тогда
                СправочникОбъект.Наименование=Адрес;
                СправочникОбъект.Записать();
            ИначеЕсли СтрТЗ.Код=КодЛС и СтрТЗ.КороткийАдрес<>КороткийАдресБ Тогда
                СправочникОбъект.КороткийАдрес=КороткийАдресБ;
                СправочникОбъект.Записать();
            ИначеЕсли СтрТЗ.Код=КодЛС и СтрТЗ.ФИО<>ФИО Тогда
                СправочникОбъект.ФИО=ФИО;
                СправочникОбъект.Записать();
            ИначеЕсли СтрТЗ.Код=КодЛС и СтрТЗ.Телефон<>ТЕЛЕФОН Тогда
                СправочникОбъект.Телефон=ТЕЛЕФОН;
                СправочникОбъект.Записать();
            ИначеЕсли СтрТЗ.Код=КодЛС и СтрТЗ.Участок<>УЧАСТОК Тогда
                СправочникОбъект.Участок=Справочники.Участки.НайтиПоНаименованию(УЧАСТОК);
                СправочникОбъект.Записать();
            ИначеЕсли СтрТЗ.Код=КодЛС и СтрТЗ.Персонал<>ПЕРСОНАЛ Тогда
                Если ПЕРСОНАЛ=1 Тогда
                    СправочникОбъект.Персонал=Истина;
                ИначеЕсли ПЕРСОНАЛ=0 Тогда
                    СправочникОбъект.Персонал=Ложь;
                КонецЕсли;
            КонецЕсли;
            
                Для Каждого ТабСтр из СправочникОбъект.Оборудование Цикл
                    Если СтрТЗ.Код=КодЛС и ТабСтр.Модель<>ПЛИТА Тогда
                        ТабСтр.Модель=ПЛИТА;
                    ИначеЕсли СтрТЗ.Код=КодЛС и ТабСтр.Дата<>ТО_ПЛИТА Тогда
                        ТабСтр.Дата=ТО_ПЛИТА;
                    ИначеЕсли СтрТЗ.Код=КодЛС и ТабСтр.Модель<>КОЛОНКА Тогда
                        ТабСтр.Модель=КОЛОНКА;
                    ИначеЕсли СтрТЗ.Код=КодЛС и ТабСтр.Дата<>ТО_КОЛОНКА Тогда
                        ТабСтр.Дата=ТО_КОЛОНКА;
                    КонецЕсли;  
                КонецЦикла;
                
                Для Каждого ТабСтр из СправочникОбъект.Долги Цикл
                    Если СтрТЗ.Код=КодЛС и ТабСтр.СуммаОстаток<>ДОЛГГАЗ и ТабСтр.Услуга=Справочники.Номенклатура.Газоснабжение Тогда
                        ТабСтр.СуммаОстаток=ДОЛГГАЗ;
                    ИначеЕсли СтрТЗ.Код=КодЛС и ТабСтр.СуммаОстаток<>ДОЛГТО и ТабСтр.Услуга=Справочники.Номенклатура.Техобслуживание Тогда
                        ТабСтр.СуммаОстаток=ДОЛГТО;
                    КонецЕсли;
                КонецЦикла; 
                СправочникОбъект.Записать();                
        КонецЦикла;         
        ФайлДБФ.Следующая(); 
    КонецЦикла;
    ФайлДБФ.ЗакрытьФайл();  
КонецФункции
Работает но долго, может подскажите как сделать более лучше, с моим знанием не хватает упросить его.

Добавлено через 22 часа 6 минут
Я уже разобрался как ускорить загрузку, только тут проблема опять появилась. У меня есть таблица Оборудование, в таблице заносится
Перечисления.ВидОборудования.ГазоваяПлита или
Перечисления.ВидОборудования.ГазоваяКолонка
Вот я написал код для проверки если данные изменили тогда перезаписываю
1C
1
2
3
4
5
6
                Если ТабСтр.Модель<>ПЛИТА и ТабСтр.Тип=Перечисления.ВидОборудования.ГазоваяПлита Тогда
                    ТабСтр.Модель=ПЛИТА;
                КонецЕсли;
            Если ТабСтр.Модель<>КОЛОНКА и ТабСтр.Тип=Перечисления.ВидОборудования.ГазоваяКолонка Тогда
                    ТабСтр.Модель=КОЛОНКА;
                КонецЕсли;
Теперь мне нужно добавить колонку или плиту если ее раньше не было а сейчас появилась, я сделал на примере колонки, если в таблице была плита а теперь еще появилась колонку, ее нужно загрузить:
1C
1
2
3
4
5
6
7
                Если ЗначениеЗаполнено(КОЛОНКА) и ТабСтр.Тип<>Перечисления.ВидОборудования.ГазоваяКолонка Тогда
                    Стр=СправочникОбъект.Оборудование.Добавить();
                    Стр.Модель=КОЛОНКА;
                    Стр.Дата=ТО_КОЛОНКА;
                    Стр.Тип=Перечисления.ВидОборудования.ГазоваяКолонка;
                ИначеЕсли ЗначениеЗаполнено(КОЛОНКА) и ТабСтр.Тип=Перечисления.ВидОборудования.ГазоваяКолонка Тогда
                КонецЕсли;
При тестировании выявилось чтобы в каждый раз колонка добавляется, чего не должно быть. В отладчике посмотрел, что сначала в таблице стоит ГазоваяПлита по условию получается, что ТабСтр.Тип<>Перечисления.ВидОборудования.ГазоваяКолонка из за этого и добавляет. Как поправить условие чтобы в следующий раз колонка уже не добавлялась если она уже существует? Колонка и плита может быть только одна!

Добавлено через 17 часов 13 минут
GreenkO, подскажите как поправить!
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
25.03.2016, 13:40 52
Ermak27, т.е. у вас для справочника "Оборудование" должны быть уникальные наборы реквизитов Модель+Дата+Тип?
Можно проверять запросом тогда наличие таких элементов, если их нет - создаем новый.
1
Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,199
28.03.2016, 08:51  [ТС] 53
GreenkO,
Цитата Сообщение от GreenkO Посмотреть сообщение
олжны быть уникальные наборы реквизитов Модель+Дата+Тип
Да. Можете показать на примере как проверить запросом
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
28.03.2016, 12:51 54
Ermak27,
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ЗапросСущ = Новый Запрос("ВЫБРАТЬ
|   Оборудование.Ссылка
|ИЗ
|   Справочник.Оборудование КАК Оборудование
|ГДЕ
|  Оборудование.Модель = &Модель
|  И Оборудование.Дата = &Дата
|  И Оборудование.Тип = &Тип");
//задаете параметры запроса
 
ВыборкаСущ = ЗапросСущ.Выполнить().Выбрать();
Если ВыборкаСущ.Количество() = 0 Тогда
//создаем новый элемент справочника
КонецЕсли;
1
28.03.2016, 12:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2016, 12:51

справочник
Здравствуйте, сразу прошу меня не критиковать, я только начала заниматься этим делом... У меня...

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

Справочник.
Ребята, подскажите, как сделать такую вот операцию: Есть справочник товаров, в форме списка -...


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

Или воспользуйтесь поиском по форуму:
54
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru