7.7 1С Торговля и Склад 9.2

Тема в разделе "Типовые решения "1С:Предприятие 7.7"", создана пользователем NovInNik, 13 май 2009.

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

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Вопрос можно задавать в форме обработки, а не использовать функцию Вопрос(). Выложи текст как делаешь и что не получается
  2. TopicStarter Overlay
    NovInNik
    Offline

    NovInNik Опытный в 1С

    Регистрация:
    12 ноя 2007
    Сообщения:
    194
    Симпатии:
    1
    Баллы:
    29
    скину лучше обработку. может можно как-то уменьшить.
    перебираю группу контрагентов (или одного) проверяю сколько было док-ов на какуюю сумму, возвратов, долг и в итоге его активность. вот эту активность так сказать статус и необходимо присвоить текущему контрагенту или пропустить и обработать следующего

    Вложения:

  3. TopicStarter Overlay
    NovInNik
    Offline

    NovInNik Опытный в 1С

    Регистрация:
    12 ноя 2007
    Сообщения:
    194
    Симпатии:
    1
    Баллы:
    29
    по применению примера кода

    Код:
    Контрагенты.ЮрФизЛицо.Статус=МоеПеречисление;
    Контрагенты.Записать();
    
    
    выводит ошибку Поле агрегатного объекта не обнаружено (Статус). Как с этим бороться. Не хочет присваивать и все. Даже любое значение, напрямую.
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    ЮрФизЛицо это справочник неопределенного типа. Может принимать значения типа Справочник.ЮрЛица или Справочник.ФилЛица Вот именно в ЭТИХ справочниках и нужно добавить реквизит Статус типа МоеПеречисление. Тогда все получится
  5. TopicStarter Overlay
    NovInNik
    Offline

    NovInNik Опытный в 1С

    Регистрация:
    12 ноя 2007
    Сообщения:
    194
    Симпатии:
    1
    Баллы:
    29
    при выборе контрагента, не вносится запись, или вносится но по всем, как осуществить только данного
    Код:
    Спр=СоздатьОбъект("Справочник.Контрагенты");
    Спр.ВыбратьЭлементы()
    Пока Спр.ПолучитьЭлемент()=1 Цикл
    Спр.ИспользоватьВладельца(Контрагент);//Контрагент берется из формы Справочник.Контрагенты
    ВидЮрФизЛица=Спр.ЮрФизЛицо.Вид();
    Если ВидЮрФизЛица="ФизЛицо" Тогда
    СпрФ=СоздатьОбъект("Справочник.ФизЛица");
    
    КонецЦикла;
    
    
    при выборе контрагента, не вносится запись, или вносится но по всем, как осуществить только данного
    Код:
    Спр=СоздатьОбъект("Справочник.Контрагенты");
    Спр.ВыбратьЭлементы()
    Пока Спр.ПолучитьЭлемент()=1 Цикл
    Спр.ИспользоватьВладельца(Контрагент);//Контрагент берется из формы Справочник.Контрагенты
    ВидЮрФизЛица=Спр.ЮрФизЛицо.Вид();
    Если ВидЮрФизЛица="ФизЛицо" Тогда
    СпрФ=СоздатьОбъект("Справочник.ФизЛица");
    СпрФ.Статус=Перечисление.Статус.нейтрален;
    СпрФ.Записать();
    КонецЕсли;
    Спр.Записать();
    КонецЦикла;
    
    
    
    в чем загвостка, так не работает, а если начинать сразу с ФизЛица, то по всем
  6. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Можно так:
    В справочники ЮрЛица и ФизЛица добавь реквизит Статус (перечисление). Тогда
    Код:
    Контрагенты.ЮрФизЛицо.Статус=МоеПеречисление;
    Контрагенты.Записать();
    
    
    А можно так:
    В справочник Контрагенты добавь реквизит Статус (перечисление). Тогда
    Код:
    Контрагенты.Статус=МоеПеречисление;
    
    
  7. TopicStarter Overlay
    NovInNik
    Offline

    NovInNik Опытный в 1С

    Регистрация:
    12 ноя 2007
    Сообщения:
    194
    Симпатии:
    1
    Баллы:
    29
    когда я прописываю
    Код:
    Контрагенты.ЮрФизЛицо.Статус=МоеПеречисление;
    
    
    в данном случае в справочниках ЮрЛица и ФизЛица создан элемент Статус, выдает ошибку что Статус не найден.
  8. TopicStarter Overlay
    NovInNik
    Offline

    NovInNik Опытный в 1С

    Регистрация:
    12 ноя 2007
    Сообщения:
    194
    Симпатии:
    1
    Баллы:
    29
    Почему не работает данный код, контрагенты находит, а значение присваивает пустое
    Код:
    Спр=СоздатьОбъект("Справочник.Контрагенты");
    Спр.ИспользоватьВладельца(Контр);
    Если Спр.НайтиЭлемент(Контр)=1 Тогда
    //например присвоим статус активный
    Спр.ЮрФизЛицо.Статус=Перечисление.Статус.активный;
    Спр.Записать();
    КонецЕсли;
    
    
  9. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Скорее всего реквизит справочника Статус имеет другой тип (не перечисление.Статус)
  10. TopicStarter Overlay
    NovInNik
    Offline

    NovInNik Опытный в 1С

    Регистрация:
    12 ноя 2007
    Сообщения:
    194
    Симпатии:
    1
    Баллы:
    29
    да нет, как раз именно перечисление, в обоих справочниках (ФизЛица и ЮрЛица)
  11. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Код:
    Спр=СоздатьОбъект("Справочник.Контрагенты");    
    Если Спр.НайтиЭлемент(Контр)=1 Тогда    //например присвоим статус активный 
    Спр.ЮрФизЛицо.Статус=Перечисление.Статус.активный;    
    Спр.Записать();    
    КонецЕсли;
    
    
    
    Т.е. вдадельца не надо. Контр это владелец справочников Юр/ФизЛица, а ты применяешь его для справочника контрагентов - масло масленное
  12. TopicStarter Overlay
    NovInNik
    Offline

    NovInNik Опытный в 1С

    Регистрация:
    12 ноя 2007
    Сообщения:
    194
    Симпатии:
    1
    Баллы:
    29
    ну и как тогда быть с присвоением реквизита Статус.
  13. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
  14. TopicStarter Overlay
    NovInNik
    Offline

    NovInNik Опытный в 1С

    Регистрация:
    12 ноя 2007
    Сообщения:
    194
    Симпатии:
    1
    Баллы:
    29
    не помогает, не присваивает и все, пустое значение остается
  15. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    А ты уверен что НайтиЭлемент срабатывает?
  16. TopicStarter Overlay
    NovInNik
    Offline

    NovInNik Опытный в 1С

    Регистрация:
    12 ноя 2007
    Сообщения:
    194
    Симпатии:
    1
    Баллы:
    29
    да, в условии "Если" после "НайтиЭлемент" перед "Записать()" выводил Сообщить(Контр); выводит выбранный в диалоге обработки
  17. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Извиняюсь - поторопился. Так должно работать
    Код:
    Спр=СоздатьОбъект("Справочник.Контрагенты");    
    Если Спр.НайтиЭлемент(Контр)=1 Тогда    //например присвоим статус активный 
    Подчиненный=СоздатьОбъект("Справочник."+Спр.ЮрФизЛицо.Вид());    
    Если Подчиненный.НайтиЭлемент(Спр.ЮрФизЛицо.ТекущийЭлемент())=1 Тогда
    Подчиненный.Статус=Перечисление.Статус.активный;     
    Подчиненный.Записать();    
    КонецЕсли; 
    КонецЕсли;
    
    
  18. TopicStarter Overlay
    NovInNik
    Offline

    NovInNik Опытный в 1С

    Регистрация:
    12 ноя 2007
    Сообщения:
    194
    Симпатии:
    1
    Баллы:
    29
    большое спасибо, дальше сам попробую докумекать. пока все работает

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