Не заполнен реквизит владелец

Владелец в справочнике не заполнен

Я
   ipbond

02.11.11 — 17:56

Есть справочник Спр1. У него есть владелец Спр2. Элементы в Спр1 создаются как непосредственно в нем так и во владельце. Мне нужно чтобы поле владелец в некоторых элементах не было заполнено когда создаю непосредственно в нем, но система автоматически проверяет заполненность реквизита владелец и записать элемент не дает. Подскажите плз можно ли штатными средствами это настроить. В стандартных реквизитах проверку отключил, но результата нету. Попробовал снять галку Использовать всегда напротив реквизита владелец в форме элемента справочника Спр1. Не пашет.

   vicof

1 — 02.11.11 — 17:58

И зачем это нужно?

   palpetrovich

2 — 02.11.11 — 17:59

мдя

   ipbond

3 — 02.11.11 — 18:01

Потому как справочник Спр1 часто используется без привязки к владельцу. И нужно создавать элементы без владельца. Я могу конечно наворотить с помощью предопределенных что-то типа  Реквизита по умалчиванию — Нету_владельца, но хочется узнать как сделать красиво.

   vinogradъ

4 — 02.11.11 — 18:02

может создать элемент с любым владельцем, потом что-то вроде Владелец = Неопределено и записать?

   izekia

5 — 02.11.11 — 18:05

(4) а ты сам пробовал?

   palpetrovich

6 — 02.11.11 — 18:06

конкретизируй малехо, где это нужно …может а консерватрии че-нить подправить   ;)

   vinogradъ

7 — 02.11.11 — 18:06

(5) в клюшках прямым запросом

   ipbond

8 — 02.11.11 — 18:09

На запрос «консерватрии» Яндекс упорно отправляет в консерваторию.

   ipbond

9 — 02.11.11 — 18:13

Попробую конкретизировать. Есть справочник Контактные_лица и Владелец спр Компании. Чаще использую первый. И бывают лица без привязки к компаниям.

   vicof

10 — 02.11.11 — 18:15

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

   ipbond

11 — 02.11.11 — 18:19

(10) Да это понятно. Но хотел этого избежать. А почему владелец обязательное поле? Ведь можно отключать проверку реквизита на заполненость в Данные->Стандартные_реквизиты.

   palpetrovich

12 — 02.11.11 — 18:19

(9) ясно, ну тогда (10) или  добавь своим КонтактнымЛицам другой возможный тип, к примеру ФизЛица

   ipbond

13 — 02.11.11 — 18:22

(12) Понятно. Видимо совсем красиво не получается. Придется добавлять признак Контактного лица.

   palpetrovich

14 — 02.11.11 — 18:25

(13) красивее наверное будет вывести Контактные_лица  из подчинения и дать им реквизит «ГдеРаботает»

  

Alexandr Puzakov

15 — 02.11.11 — 18:28

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

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

Вот само ТЗ:
3.2 Если значение в файле в колонке «J»(БИК) заполнено, поиск по коду в справочнике Банки. Т.е. код справочника = БИК из файла.
3.2.1 Если Банк не найден, создать элемент справочника «Банки», код = «БИК» (колонка J), наименование = «БАНК ПОЛУЧАТЕЛЬ…» (колонка F), ГОРОД = «ГОРОД…» (колонка G), КоррСчет = «КОР. СЧЕТ» (колонка K). Записать новый элемент справочника «Банки».
3.2.2 Следом, создать элемент справочника «БанковскиеСчета», реквизит «Банк» заполнить элементом справочника из п. 3.2.1, записать созданный элемент справочника «»БанковскиеСчета»
3.2.3
проверить запросом»
ВЫБРАТЬ
Контрагенты.Ссылка
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
Контрагенты.ОсновнойБанковскийСчет.Банк.Код = &Код»
есть ли в системе контрагент, у которого основной банковский счет принадлежит банку с кодом (БИК-ом) банка из п.3.2
Если контрагент не найден, создать новый элемент справочника «Контрагенты», наименование = наименование элемента справочника Банки из п.3.2,
Основной банковский счет = БанковскийСчет из п.3.2.2.
ИНН заполнить как ИНН из файла (колонка H)
КПП заполнить как КПП из файла (колонка I)
Записть элемент справочника «Контрагенты».
3.2.4 — Если значение в файле в колонке «J»(БИК) НЕ заполнено, предполагается что банка нет.
Ищем контрагнета в справочнике «Контрагенты» по наименвоанию, колонка «F»
Если контрагент не найден, создаем контрагента аналогично п.3.2.3, Но реквизит «Основной банковский счет» не заполняется, никаких запросов проверки тоже нет, только алгоритм создания. Наименование = значение колонки «F»

Вот код, который я прописываю (не судите строго, всего неделю как изучаю программирование 1с)————————————————————————————

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
Если ЗначениеЗаполнено(БИК) Тогда
Банк = Справочники.Банки.НайтиПоКоду(БИК);
 
Если НЕ ЗначениеЗаполнено(Банк.Код) Тогда
НовыйЭлемент = Справочники.Банки.СоздатьЭлемент();
НовыйЭлемент.Код = БИК;
НовыйЭлемент.Наименование = БанкЭК;
НовыйЭлемент.Город = ГородЭК;
НовыйЭлемент.КоррСчет = КоррСчетЭК;
НовыйЭлемент.Записать();
 
НовыйЭЛ = Справочники.БанковскиеСчета.СоздатьЭлемент();
НовыйЭЛ.Владелец = ;
НовыйЭЛ.Банк = БанкЭК;
НовыйЭЛ.Записать();
 
Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
| Контрагенты.Ссылка
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.ОсновнойБанковскийСчет.Банк.Код = &Код";
 
Запрос.УстановитьПараметр("Код", БИК);
 
РезультатЗапроса = Запрос.Выполнить();
 
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
 
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла; 
 
ИначеЕсли РезультатЗапроса = 0 Тогда
НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
НовыйКонтрагент.Наименование = БанкЭК;
НовыйКонтрагент.ОсновнойБанковскийСчет = НовыйЭЛ.НомерСчета;
НовыйКонтрагент.ИНН = ИНН;
НовыйКонтрагент.КПП = КПП;
НовыйКонтрагент.Записать();
КонецЕсли;
 
ИначеЕсли НЕ ЗначениеЗаполнено(БИК) Тогда
Сообщить("Банка нет");
 
Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(БанкЭК);
Если НЕ ЗначениеЗаполнено(Контрагент.Наименование) Тогда
НовыйКонтрагент1 = Справочники.Контрагенты.СоздатьЭлемент();
НовыйКонтрагент1.Наименование = БанкЭК;
НовыйКонтрагент1.ИНН = ИНН;
НовыйКонтрагент1.КПП = КПП;
НовыйКонтрагент1.Записать();
КонецЕсли;
КонецЕсли;

Подскажите, где я ошибаюсь в написании кода

  1. Здравствуйте! Ошибка возникает при записи группы в справочнике номенклатура.Справочник иерархический.Значение поле Владелец не заполнено.для группы не нужно указывать владельца.Отключил проверки,пытался программно присвоить пустую ссылку не получается. В обработке заполнения отсутствует реквизит Владелец в проверяемых реквизитах. В чем дело тут?

    Вложения:

    • 1c.JPG
      1c.JPG
      Размер файла:
      169,7 КБ
      Просмотров:
      9

  2. nbIpKuH_BaH9I

    Offline

    nbIpKuH_BaH9I
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.170
    Симпатии:
    554
    Баллы:
    204

    Ну так Вы в коде смотрите. Что там?

  3. В том то и дело интересно самому)Чистая база, ни в модуле объекта ни в модуле формы кода нет)Из стандартных реквизитов проверку удалил так же ошибку пишет…


  4. Tiger86

    Offline

    Tiger86
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104

    у иерархического спраовника поле не Владелец а Родитель должно быть заполнено у элементов группы


  5. nbIpKuH_BaH9I

    Offline

    nbIpKuH_BaH9I
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.170
    Симпатии:
    554
    Баллы:
    204

    Ну значит, что то есть. Киньте конфу сюда.


  6. Tiger86

    Offline

    Tiger86
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104

    значит этот справочник у вас еще и подчиненный

  7. ну да, владельцем является другой справочник

    — Объединение сообщений, 1 сен 2014

    вот база

    Вложения:

    • 1Cv8.dt
      Размер файла:
      25,4 КБ
      Просмотров:
      2

  8. Tiger86

    Offline

    Tiger86
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104

    ну так и смотрите настройки подчинения

    — Объединение сообщений, 1 сен 2014

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

  9. нет пробовал не помогает

    — Объединение сообщений, 1 сен 2014

    посмотрите пожалуйста базу я скинул,буду благодарен.Интересно самому в чем дело)


  10. nbIpKuH_BaH9I

    Offline

    nbIpKuH_BaH9I
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.170
    Симпатии:
    554
    Баллы:
    204

    Это что?
    upload_2014-9-1_14-20-46.png


  11. 1cUserAndrew

    Online

    1cUserAndrew
    Профессионал в 1С
    Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    5.155
    Симпатии:
    217
    Баллы:
    104

    Вы уверены? )
    Откройте стандартные реквизиты, для реквизита «Владелец» укажите использование «Для элемента».

    — Объединение сообщений, 1 сен 2014

    Ой, блин, сорри, … предыдущее сообщение (скрин) не внимательно посмотрел. ))
    Видите, там подчинение «Группам и элементам».

  12. ну вы попробуйте сохраниться подчинение «Группам и элементам», и если реквизит владелец не заполнить, то всё равно ошибка выскачит


  13. nbIpKuH_BaH9I

    Offline

    nbIpKuH_BaH9I
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.170
    Симпатии:
    554
    Баллы:
    204

    Блин. НУ это логично. Вы подчинили справочник Номенклатура зачем то единицам измерения. И одновременно сделали его иерархическим. Так и будьте любезны владельца поставить.

    — Объединение сообщений, 1 сен 2014

    Все программа правильно делает.

    — Объединение сообщений, 1 сен 2014

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

  14. действительно меня попросили найти, на самом деле все верно разобрались(на что я не обратил внимание) неправильное подчинение было. Спасибо Вам за помощь)


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

Значение поля «Владелец» не заполнено или заполнено неверно

Автор Reclaim, 16 ноя 2015, 08:08

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

Здравствуйте! Работаю в конфигурации ЗУП 2.5, создаю внешнюю обработку для загрузки данных.
———————————————————————————————————-
Если ЗначениеЗаполнено(БИК) Тогда
    Банк = Справочники.Банки.НайтиПоКоду(БИК);

                      Если НЕ ЗначениеЗаполнено(Банк.Код) Тогда
   НовыйЭлемент = Справочники.Банки.СоздатьЭлемент();
   НовыйЭлемент.Код = БИК;
   НовыйЭлемент.Наименование = БанкЭК;
   НовыйЭлемент.Город = ГородЭК;
        НовыйЭлемент.КоррСчет = КоррСчетЭК;
   НовыйЭлемент.Записать();

                        НовыйЭЛ = Справочники.БанковскиеСчета.СоздатьЭлемент();
        НовыйЭЛ.Банк = БанкЭК;
   НовыйЭЛ.Записать();
———————————————————————————————————-
Программа ругается и выдает такую ошибку: {Форма.Форма.Форма(115)}: Ошибка при вызове метода контекста (Записать) НовыйЭЛ.Записать();
по причине: Значение поля «Владелец» не заполнено или заполнено неверно.

Подскажите как избавиться от этой ошибки.


у банковского счета есть владелец — организация или контрагент.
без него никуда.

Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.


Здравствуйте! Работаю в конфигурации ЗУП 2.5, создаю внешнюю обработку для загрузки данных. Вот часть кода, в которой выдается ошибка. ———————————————————————————————————- Программа ругается и выдает такую ошибку: {Форма.Форма.Форма}: Ошибка при вызове метода контекста (Записать) НовыйЭЛ.Записать; по причине: Значение поля «Владелец» не заполнено или заполнено неверно. Подскажите как избавиться от этой ошибки.

заполнить поле? нет, не то

Заполнить владельца наверное

это слишком просто, автор явно уже подумал об этом

Непонятки еще заключаются в том, что при запуске обработки, эта ошибка вылезает каждый раз по разному. Т.е. в первом запуске ошибка вылезает после обработки 5 строк, при втором запуске после 11 строк, при третьем после 30 строк…

Наверное потому, что где то как то у тебя все таки владелец заполняется

вот так выглядит работа условного перехода

а вообще, нехорошо банки создавать. для этого целый классификатор естт

В принципе в какой стороне искать решение понял, пошел разбираться. Всем спасибо!

Все равно застопорился… Суть проблемы еще заключается в том, что контрагент по ТЗ создается после вот этой проверки. Вот само ТЗ: 3.2 Если значение в файле в колонке «J»(БИК) заполнено, поиск по коду в справочнике Банки. Т.е. код справочника = БИК из файла. 3.2.1 Если Банк не найден, создать элемент справочника «Банки», код = «БИК» (колонка J), наименование = «БАНК ПОЛУЧАТЕЛЬ…» (колонка F), ГОРОД = «ГОРОД…» (колонка G), КоррСчет = «КОР. СЧЕТ» (колонка K). Записать новый элемент справочника «Банки». 3.2.2 Следом, создать элемент справочника «БанковскиеСчета», реквизит «Банк» заполнить элементом справочника из п. 3.2.1, записать созданный элемент справочника «»БанковскиеСчета» Контрагенты.Ссылка ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ Контрагенты.ОсновнойБанковскийСчет.Банк.Код = &Код» есть ли в системе контрагент, у которого основной банковский счет принадлежит банку с кодом (БИК-ом) банка из п.3.2 Если контрагент не найден, создать новый элемент справочника «Контрагенты», наименование = наименование элемента справочника Банки из п.3.2, Основной банковский счет = БанковскийСчет из п.3.2.2. ИНН заполнить как ИНН из файла (колонка H) КПП заполнить как КПП из файла (колонка I) Записть элемент справочника «Контрагенты». 3.2.4 — Если значение в файле в колонке «J»(БИК) НЕ заполнено, предполагается что банка нет. Ищем контрагнета в справочнике «Контрагенты» по наименвоанию, колонка «F» Если контрагент не найден, создаем контрагента аналогично п.3.2.3, Но реквизит «Основной банковский счет» не заполняется, никаких запросов проверки тоже нет, только алгоритм создания. Наименование = значение колонки «F» Вот код, который я прописываю (не судите строго, всего неделю как изучаю программирование 1с)———————————————————————————— Подскажите, где я ошибаюсь в написании кода

а можно я не буду читать гору букв, а спрошу: что не так?

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

Проблема в том, либо это ТЗ неправильно составлена, либо я что-то не понимаю (а учитывая уровень моих знаний в 1с, то я больше склонен к этой версии)

А в чем проблема делать наоборот?)

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

не учите его плохому, пусть ТЗ правильно составляют

Сейчас пытаюсь такое провернуть, но есть пунк, который я прописал маленько «нашару», т.к. не знаю как это сделать правильно. Контрагенты.Ссылка ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ Контрагенты.ОсновнойБанковскийСчет.Банк.Код = &Код» есть ли в системе контрагент, у которого основной банковский счет принадлежит банку с кодом (БИК-ом) банка из п.3.2 Если контрагент не найден, создать новый элемент справочника «Контрагенты», наименование = наименование элемента справочника Банки из п.3.2, Основной банковский счет = БанковскийСчет из п.3.2.2. ИНН заполнить как ИНН из файла (колонка H) КПП заполнить как КПП из файла (колонка I) Записть элемент справочника «Контрагенты». Я это прописываю так, но пятой точкой чувствую что делаю это неправильно ———————————

Что же плохого? (если это всерьёз)

Включи отладчик и пошагово посмотри в своём коде. Тогда твои ощущения перейдут в практическое исправление ошибок.

Дело в том, что отладчик просто перескакивает весь запрос (что по идее ненормально). Поэтому и возникает такое ощущение, что код у меня неправильный. P.S. Я настолько начинающий, что данные отладчика мне мало что говорят.

пошаговая отладка запроса в принципе невозможна

А то что он сейчас будет заморачиваться с ПолучитьСсылкуНового и в итоге может получить «Объект не найден»(если будет делать не в транзакции) и дальнейшие проблемы, вместо того чтобы правильно составить ТЗ и создавать сначала владельца, а потом банковский счет.

Для отладки текста запроса есть Консоль запросов. Если остановиться на результате запроса, то его можно выгрузить в ТЗ и посмотреть. Например, Результат.Выгрузить

Думаешь, ему будут повторно ТЗ составлять?

вот тут бредишь                        ИначеЕсли РезультатЗапроса = 0 Тогда результат запроса не может быть 0.

ОФФ:Строг ты, батенька. Мы также начинали.

ТЗ составлен максимально корректно. Это ТС читать не умеет. Читаем: проверить запросом ВЫБРАТЬ Контрагенты.Ссылка ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ Контрагенты.ОсновнойБанковскийСчет.Банк.Код = &Код» есть ли в системе контрагент, у которого основной банковский счет принадлежит банку с кодом (БИК-ом) банка из п.3.2 пока все понятно, проверили, НИЧЕГО НЕ СОЗДАЕМ ПОКА ЕЩЕ (поскольку нет такого в ТЗ). Далее: есть ли в системе контрагент, у которого основной банковский счет принадлежит банку с кодом (БИК-ом) банка из п.3.2 !!!Если контрагент не найден, создать новый элемент справочника «Контрагенты»,!!! наименование = наименование элемента справочника Банки из п.3.2, Если контрагент не найден, создать контрагента (Контрагента, Карл!!!) А потом уже банковский счет

Проблема в том, либо это ТЗ неправильно составлена, либо я что-то не понимаю (а учитывая уровень моих знаний в 1с, то я больше склонен к этой версии) Писал такое некоторое количество сообщений назад, так что замечание правильное

Ну вот теперь голову в руки, руки с одного места на правильное пересади и делай в соответствии с ТЗ

Руки в правильном месте. Знаний в голове пока нету. От этого и куча вопросом и непоняток

Собеседование через мисту? Круто, че. ТС спалился походу, теперь не возьмут…

кто вообще составлял это тз? как может название контрагента совпасть с названием банка?

А кто сказал, что не может?

Нет, не собеседование. Уже рабочее задание. На несложных заказах учусь программировать. Стараюсь сам разбираться, но далеко не всегда получается. P.S. Работать взяли абсолютно без знания 1с, так что сейчас все это наверстываю

Начинай с вдумчивого чтения ТЗ. Лучше несколько раз.

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

Тэги: 1С 8

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

Понравилась статья? Поделить с друзьями:

Вот еще несколько интересных статей нашего сайта:

  • Монгольские компании в москве
  • Мондиал бизнес консорциум ооо
  • Монетка реквизиты организации
  • Монополия на большую компанию
  • Монопольные компании в россии

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии