7.7 ечаль (Как получить значение элемента формы справочника)

Тема в разделе "Типовые решения "1С:Предприятие 7.7"", создана пользователем dmitry1-irk38, 17 ноя 2013.

  1. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    скажется конечно.. Ну если себестоимость вам не важна... МОЖНО в модуле проведения
    • или отключить контроль отрицательных
    • или вообще не перепроводить документ по регистрам
    эти правила действительны для конкретного пользователя и при условии что документ уже проведен.
  2. TopicStarter Overlay
    dmitry1-irk38
    Offline

    dmitry1-irk38 Опытный в 1С

    Регистрация:
    10 окт 2012
    Сообщения:
    102
    Симпатии:
    0
    Баллы:
    26
    Я просто в модуле проведения напиши Если есть Грузчик Тогда не проверять.
    Если изменяю реквизит в Реализиции не касающийся количества товаров или сумм, и нажимаю ок, а не провести, тогда происходит перепроведение?
    У ТиС перепроведение - это сравнение со страрыми данными и в случаи несоотвествия перезапись регистров, операций?
    Допустим со склада реализация 50 коробок, провели осталось на складе 150, было 200. Потом перепровел реализацию и стало 100? Такого же не будет, а то склад опустошится (((
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Нельзя. А вдруг кому-то захочется мухлевать с данными, а грузчик заполнен. Концов не найдете

    Проведение происходит если есть изменение ЛЮБОГО реквизита документа

    Просто движение по регистрам (с отменой предыдущих движений)

    Неее... не будет))))
    Механизм такой: сначала удаляются предыдущие движения, потом делаются новые
  4. TopicStarter Overlay
    dmitry1-irk38
    Offline

    dmitry1-irk38 Опытный в 1С

    Регистрация:
    10 окт 2012
    Сообщения:
    102
    Симпатии:
    0
    Баллы:
    26
    Кажется эта процедура отвечает за проверку глНеПроводить, но в реализации таких процедур несколько
    Похоже этот кусок
    Код:
     Если РазрешитьПревышениеКредита <> 0  Тогда
    глСообщениеПроведения(СтрокаСообщ+ РазделительСтрок+"Документ: "+глПредставлениеДокумента(ТекущийДокумент()), ТекущийДокумент(),,,1);
    Возврат 1;
    Иначе				  
    глНеПроводить(Контекст,СтрокаСообщ);
    Возврат 0;
    КонецЕсли;
    КонецЕсли;
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Не то... Это проверка на превышение долга клиента перед фирмой.
  6. TopicStarter Overlay
    dmitry1-irk38
    Offline

    dmitry1-irk38 Опытный в 1С

    Регистрация:
    10 окт 2012
    Сообщения:
    102
    Симпатии:
    0
    Баллы:
    26
    блин убрал все глНеПроводить и Возрат, все равно ошибка, что-то не то, надо в другом месте копать :)
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    в модуле проведения реализации

    ТутПроверкаПользователя - напишите сами

    Код:
    Процедура ОбработкаПроведения(ВидыДвижений)
    Если (ТутПроверкаПользователя)И(Проведен()=1) Тогда
    возврат;
    КонецЕсли;
    //далее идет типовой механизм....
    
    // Проверка заполненности обязательных реквизитов.
    Если глВсеРеквизитыДокументаЗаполнены(Контекст,
    "Фирма,Склад,Валюта,Контрагент,Договор")=0 Тогда
    Возврат;
    КонецЕсли;
    ......
    
  8. TopicStarter Overlay
    dmitry1-irk38
    Offline

    dmitry1-irk38 Опытный в 1С

    Регистрация:
    10 окт 2012
    Сообщения:
    102
    Симпатии:
    0
    Баллы:
    26
    Это уже есть, но когда ставлю ингнорирование процедуры глНеПроводить, все равно программа вылетает в ошибку ((
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Покажите что вы там написали.....
  10. TopicStarter Overlay
    dmitry1-irk38
    Offline

    dmitry1-irk38 Опытный в 1С

    Регистрация:
    10 окт 2012
    Сообщения:
    102
    Симпатии:
    0
    Баллы:
    26
    Вот так :blush:
    Код:
    Если (Склад.РозничныйСклад = 1) Тогда 
    Если ГрузФ1<>"Да" Тогда
    глНеПроводить(Контекст,"Документ """+ глНазваниеДокументаВЖурнале(Контекст)+""" можно
    |оформлять только с оптового склада!");
    Возврат;
    КонецЕсли;
    Предупреждение("="+ГрузФ1);
    КонецЕсли;
    глНеПроводить так я пропускаю проверку, все заблокировал но не все равно проверка проходит.

    Тут проверяю наличие грузчика:
    Код:
    ДокГ = ТекущийДокумент();
    ДокГ.ВыбратьСтроки();
    Пока ДокГ.ПолучитьСтроку() = 1 Цикл
    Если ПустоеЗначение(ДокГ.Грузчик) = 0  Тогда
    Предупреждение("ЕстьГрузчик");
    ГрузФ1 = "Да";
    // Возврат;
    КонецЕсли;
    КонецЦикла;
    Предупреждение("="+ГрузФ1);
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    ну я же вам все написал уже.......
    Отвяжитесь вы от процедуры глНеПроводить... Она отвечает за вывод ошибки...
    В модуле проведения есть предопределенная процедура ОбработкаПроведения
    В начале ее интегрируем код


    Код:
    Функция ЕстьГрузчик()
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
    Если ПустоеЗначение(Грузчик) = 0  Тогда
    Возврат 1;
    КонецЕсли;
    КонецЦикла;
    Возврат 0;
    КонецФункции
    
    
    Процедура ОбработкаПроведения(ВидыДвижений)
    //вставляем кусок
    Если (ЕстьГрузчик()=1)И(Проведен()=1)И(ИмяПользователя()="Кладовщик") Тогда //нужно только ОДНОМУ пользователю позволить такой фокус Иначе если заполнить грузчика документ не изменится никогда!
    возврат;
    КонецЕсли;
    //конец нашего куска
    //далее идет типовой механизм
    
    // Проверка заполненности обязательных реквизитов.
    Если глВсеРеквизитыДокументаЗаполнены(Контекст,
    "Фирма,Склад,Валюта,Контрагент,Договор")=0 Тогда
    Возврат;
    КонецЕсли;
    ......
    
  12. TopicStarter Overlay
    dmitry1-irk38
    Offline

    dmitry1-irk38 Опытный в 1С

    Регистрация:
    10 окт 2012
    Сообщения:
    102
    Симпатии:
    0
    Баллы:
    26
    Класс гениально :yahoo: :yahoo: :yahoo:
    Т.е происходит запись документа, а процедура проведения не проходит и выходит на возврат?
  13. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Ну в принципе да... Проведение происходит, но без движений по регистрам.....
  14. XXL
    Offline

    XXL Опытный в 1С Команда форума

    Регистрация:
    22 янв 2007
    Сообщения:
    1.159
    Симпатии:
    19
    Баллы:
    29
    Доброго дня.
    Припишу сюда же.
    Надо вытащить реквизит формы справочника, а как, не пойму.
    Я выбираю документы, в документе есть реквизит Контрагент, у контрагента на форме элемента есть реквизит ИНН - как его достать - "Док.Контрагент.???"
  15. rshakiro
    Offline

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

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Док.Контрагент.НазваниеРеквизитаИНН - что не получается??
    ЗЫ: в ТИСе ИНН содержатся в 2-х справочниках - ЮрЛица и ФизЛица
  16. XXL
    Offline

    XXL Опытный в 1С Команда форума

    Регистрация:
    22 янв 2007
    Сообщения:
    1.159
    Симпатии:
    19
    Баллы:
    29
    нет:(
    --- Объединение сообщений, 27 авг 2014 ---
    Говорит, нет такого реквизита "Поле агрегатного объекта не обнаружено"
    --- Объединение сообщений, 27 авг 2014 ---
    Последнее редактирование: 27 авг 2014
  17. rshakiro
    Offline

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

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    попробуйте:
    Код:
    Док.Контрагент.ЮрФизЛицо.ИНН; //для ИНН
    Док.Контрагент.ЮрФизЛицо.ПолнНаименование; //для Полного наименования
    
  18. XXL
    Offline

    XXL Опытный в 1С Команда форума

    Регистрация:
    22 янв 2007
    Сообщения:
    1.159
    Симпатии:
    19
    Баллы:
    29
    Спасибо огромное, получилось:) Давненько я с 7.7 не общалась, но ностальгии не возникло:D
  19. rshakiro
    Offline

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

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    не за что... 7-ка еще долго будет жить ;)
  20. LordMaverick
    Online

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.442
    Симпатии:
    374
    Баллы:
    104
    лучше не через кучу точек
    Код:
    ФизКонтрагент=Док.Контрагент.ЮрФизЛицо;
    ФизКонтрагент.ИНН; //для ИНН
    ФизКонтрагент.ПолнНаименование; //для Полного наименования

Поделиться этой страницей