|
Добавление нового элемента справочника | ☑ | ||
---|---|---|---|---|
0
Natalia_28
29.09.15
✎
10:31
|
Столкнулась с такой проблемой. Нужно из файла Ексель выгрузить данные и на основании этих данных добавить в справочник Контрагенты нового контрагента, если он не существует и создать для него договор. А если контрагент есть, то проверить наличие договора. Сделала вот так:
ФИО = Док.Sheets(ТекНомер).Cells(НомерСтроки,2).Value; НомерДоговора = Док.Sheets(ТекНомер).Cells(НомерСтроки,4).Value; ВыдачаНаличных = Док.Sheets(ТекНомер).Cells(НомерСтроки,10).Value; Если Справочники.Контрагенты.НайтиПоНаименованию(ФИО, Истина, ГруппаКонтрагентов, ) = Неопределено Тогда НовСтр = Справочники.Контрагенты.Новый(); НовСтр.НаименованиеПолное = ФИО; НовСтр.Наименование = ФИО; НовСтр.ЮрФизЛицо = "Физ. лицо"; НовСтр.Владелец = ГруппаКонтрагентов; НовСтр.Записать(); Иначе КонецЕсли; Но при отладке показывает, что в этот цикл не заходит. В чем может быть проблема? |
|||
1
Альбатрос
29.09.15
✎
10:32
|
(0) Потому что ПустаяСсылка возвращается, а не определено
|
|||
2
Альбатрос
29.09.15
✎
10:33
|
ЮрФизЛицо - это перечисление
|
|||
3
Альбатрос
29.09.15
✎
10:33
|
в типовых конфах у справочника контрагенты нет владельца. Ты наверно хочешь родителя задать
|
|||
4
НЕА123
29.09.15
✎
10:34
|
>Но при отладке показывает, что в этот цикл не заходит.
где же он - "этот цикл"? |
|||
5
Natalia_28
29.09.15
✎
10:35
|
(3) - может и родителя, не спорю.я с этим никак не разберусь.
Вот цикл весь: Для ТекНомер = 1 По КоличествоСтраниц Цикл ЭлементыФормы.Индикатор1.Значение = СтрокаС; ЭлементыФормы.Индикатор1.МинимальноеЗначение = СтрокаС; ЭлементыФормы.Индикатор1.МаксимальноеЗначение = СтрокаПо; Для НомерСтроки = СтрокаС По СтрокаПо Цикл ОбработкаПрерыванияПользователя(); Дата = Док.Sheets(ТекНомер).Cells(НомерСтроки,5).Value; Операция = СокрЛП("Выдача кредита"); Группа = ГруппаКонтрагентов; Если Дата = Неопределено Тогда НомерСтроки = НомерСтроки + 1; ЭлементыФормы.Индикатор1.Значение = ЭлементыФормы.Индикатор1.Значение + 1; Иначе ЭлементыФормы.Индикатор1.Значение = ЭлементыФормы.Индикатор1.Значение + 1; ФИО = Док.Sheets(ТекНомер).Cells(НомерСтроки,2).Value; НомерДоговора = Док.Sheets(ТекНомер).Cells(НомерСтроки,4).Value; ВыдачаНаличных = Док.Sheets(ТекНомер).Cells(НомерСтроки,10).Value; Если Справочники.Контрагенты.НайтиПоНаименованию(ФИО, Истина, ГруппаКонтрагентов, ) = Неопределено Тогда НовСтр = Справочники.Контрагенты.Новый(); НовСтр.НаименованиеПолное = ФИО; НовСтр.Наименование = ФИО; НовСтр.ЮрФизЛицо = "Физ. лицо"; НовСтр.Владелец = ГруппаКонтрагентов; НовСтр.Записать(); Иначе КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; Точнее не в цикл не заходит, а в условие это. Оно его перескакивает |
|||
6
Альбатрос
29.09.15
✎
10:36
|
(5) Я тебе уже объяснил почему не выполняется условие
|
|||
7
НЕА123
29.09.15
✎
10:38
|
ответ в (1)
|
|||
8
Natalia_28
29.09.15
✎
10:40
|
(6), (7) я понимаю, что для Вас, тех кто с 1С работает очень долго, ответ в (1) говорит все. Для меня это ничего не сказало
|
|||
9
Альбатрос
29.09.15
✎
10:42
|
Если Справочники.Контрагенты.НайтиПоНаименованию(ФИО, Истина, ГруппаКонтрагентов, ) = Справочники.Контрагенты.ПустаяСсылка() Тогда
|
|||
10
НЕА123
29.09.15
✎
10:42
|
(8)
СП. НайтиПоНаименованию. |
|||
11
hhhh
29.09.15
✎
10:42
|
(8) пиши по-русски
Если НЕ ЗначениеЗаполнено( Справочники.Контрагенты.НайтиПоНаименованию(ФИО, Истина, ГруппаКонтрагентов, )) Тогда там никогда не будет Неопределено. Если ты написала = Неопределено, никогда не войдет в это условие, даже если биться головой об стену. |
|||
12
Мимохожий Однако
29.09.15
✎
10:46
|
Научись пользоваться отладчиком и СП. Намного облегчишь себе жизнь. Обычно указывают конфигурацию или параметры объекта с проблемой.
|
|||
13
Natalia_28
29.09.15
✎
10:47
|
(9) спасибо
(11) с этим я согласна, просто первое время трудно работать с программой, если видишь ее не очень давно |
|||
14
Natalia_28
29.09.15
✎
10:47
|
(12) учусь
|
|||
15
jurassic
29.09.15
✎
10:49
|
(11) ну, допустим, бывают справочники без наименования...
|
|||
16
jurassic
29.09.15
✎
10:51
|
(13) и ты решила молчать, как партизан, раз уж не поняла
|
|||
17
Ненавижу 1С
гуру
29.09.15
✎
10:51
|
(0) с Украины?
|
|||
18
Natalia_28
29.09.15
✎
10:53
|
(16) почему молчать? что сказать, то нужно? или что услышать хочешь?
(17) с Украины и? Это проблема? |
|||
19
jurassic
29.09.15
✎
10:54
|
(18) между (1) и (5) сказать "ой, о чём это?"
|
|||
20
Natalia_28
29.09.15
✎
10:56
|
(19) под... засчитан. ты так самоутверждаешься или как?
|
|||
21
jurassic
29.09.15
✎
10:57
|
(20) или как
|
|||
22
hhhh
29.09.15
✎
11:09
|
(18) наверно уже нет смысла осваивать 1с, всё равно его скоро запретят.
|
|||
23
Natalia_28
29.09.15
✎
11:14
|
(22) кто вам такой бред сказал?
|
|||
24
magicSan
29.09.15
✎
11:19
|
(23) Путин, для украины больше не будет обновлятся 1С
|
|||
25
magicSan
29.09.15
✎
11:19
|
(23) Вам там с европы САп придет или от мелкосотфа софтина
|
|||
26
Ненавижу 1С
гуру
29.09.15
✎
11:19
|
(23) санкции на использование вражеского продукта
поди еще и на русском языке |
|||
27
magicSan
29.09.15
✎
11:21
|
(0) 1. ГРузим контрагентов в ТЗ, делаем запрос с учетом Тз отбираем тех кого надо создать.
2. С договорами тоже самое - можно одним запросом впринципе. |
|||
28
Natalia_28
29.09.15
✎
11:21
|
(26) посмотрим
|
|||
29
Гёдза
29.09.15
✎
11:23
|
НайтиПоНаименования = ПустаяСсылка
|
|||
32
magicSan
29.09.15
✎
11:25
|
не значениеЗаполнение(...найтипонаименованию) но не кошерно
|
|||
41
Fish
модератор
29.09.15
✎
11:47
|
Давайте ближе к сабжу.
|
|||
42
ИС-2
naïve
29.09.15
✎
12:01
|
(0) сравнивать надо с пустой ссылкой. Чтобы посмотреть отладчиком какое значение возвращает функция надо выделить строку
Справочники.Контрагенты.НайтиПоНаименованию(ФИО, Истина, ГруппаКонтрагентов, ) и нажать shift-F9 -Чем отличается версия 1C для Белоруссии от версии для РФ? -Наличием метода "БатькоСказал" |
|||
43
SiAl-chel
29.09.15
✎
12:54
|
(0) Тебе в (9) сказали неправду. Вот как надо
Если Справочники.Контрагенты.НайтиПоНаименованию(ФИО, Истина, ГруппаКонтрагентов).Пустая() Тогда ПустаяСсылка() - это метода реквизитов полей таблиц в запросах. |
|||
44
Альбатрос
29.09.15
✎
13:11
|
(43) СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)
ПустаяСсылка (EmptyRef) Синтаксис: ПустаяСсылка() Возвращаемое значение: Тип: СправочникСсылка. Описание: Получает пустое значение ссылки на справочник данного вида. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
45
jurassic
29.09.15
✎
13:12
|
а что такое метод реквизитов полей?
|
|||
46
vhl
29.09.15
✎
13:17
|
(0) Не делай в цикле обращений к базе. Делай так:
ТаблицаКонтр = Новый ТаблицаЗначений; ТаблицаКонтр.Колонки.Добавить("ФИО", Новый ОписаниеТипов("Строка")); ТаблицаКонтр.Колонки.Добавить("НомерДоговора"); ТаблицаКонтр.Колонки.Добавить("ВыдачаНаличных"); Для ТекНомер = 1 По КоличествоСтраниц Цикл ... ФИО = Док.Sheets(ТекНомер).Cells(НомерСтроки,2).Value; НомерДоговора = Док.Sheets(ТекНомер).Cells(НомерСтроки,4).Value; ВыдачаНаличных = Док.Sheets(ТекНомер).Cells(НомерСтроки,10).Value; НовСтр = ТаблицаКонтр.Добавить(); НовСтр.ФИО = ФИО; НовСтр.НомерДоговора = НомерДоговора; НовСтр.ВыдачаНаличных = ВыдачаНаличных; КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Таб.ФИО |ПОМЕСТИТЬ Таб |ИЗ | &Таб КАК Таб |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Таб.ФИО |ИЗ | Таб КАК Таб | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты | ПО Таб.ФИО = Контрагенты.Наименование | И (Контрагенты.Владелец = &ГруппаКонтрагентов) |ГДЕ | Контрагенты.Ссылка ЕСТЬ NULL "; Запрос.УстановитьПараметр("ГруппаКонтрагентов", ГруппаКонтрагентов); Запрос.УстановитьПараметр("Таб", ТаблицаКонтр); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл НовСтр = Справочники.Контрагенты.Новый(); НовСтр.НаименованиеПолное = Выборка.ФИО; НовСтр.Наименование = Выборка.ФИО; НовСтр.ЮрФизЛицо = "Физ. лицо"; НовСтр.Владелец = ГруппаКонтрагентов; НовСтр.Записать(); КонецЦикла; |
|||
47
magicSan
29.09.15
✎
13:32
|
(46) молодец , меня хватило только на опсиание действий (27) )))
|
|||
48
Natalia_28
29.09.15
✎
13:38
|
(46) спасибо)))Я пока в цикле все сделала, а не через ТЗ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |