Модераторы: stron
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Процедура не работает почему? 
:(
    Опции темы
REn005
Дата 26.9.2008, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 23.8.2007
Где: MARS

Репутация: нет
Всего: нет



Код

Процедура ИзменитьКоличество(УжеПроведен)
        СпрПодр=СоздатьОбъект("Справочник.Подразделения");
        СпрПодр.НайтиЭлемент(Подразделение);
        СпрПодр.ТекущийЭлемент();
        ЕСли УжеПроведен=0 Тогда
            СпрПодр.КолСотр=СпрПодр.КолСотр-1;
        Иначе
            СпрПодр.КолСотр=СпрПодр.Колсотр+1;
        КонецЕсли;
        СпрПодр.Записать();
        КонецПроцедуры


почему то ругаеца етим.
Код

СпрПодр.КолСотр=СпрПодр.КолСотр-1;
{Документ.ПриказОбУвольнении.Модуль Документа(6)}: Не выбран элемент! 



Это сообщение отредактировал(а) REn005 - 26.9.2008, 16:46
PM MAIL ICQ Skype   Вверх
geka6pucT
Дата 26.9.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 31.7.2007

Репутация: нет
Всего: нет



Попробуй
СпрПодр.ТекущийЭлемент().КолСотр=СпрПодр.ТекущийЭлемент().КолСотр-1
PM MAIL   Вверх
REn005
Дата 26.9.2008, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 23.8.2007
Где: MARS

Репутация: нет
Всего: нет



тоже самое,опять ругаеца что не выбран елемент, но странно етон код норамльно работает
     
Код

           
     Процедура ИзменитьКоличество(УжеПроведен)
        СпрПодр=СоздатьОбъект("Справочник.Подразделения");
        СпрПодр.НайтиЭлемент(Подразделение);
        СпрПодр.ТекущийЭлемент();
        ЕСли УжеПроведен=1 Тогда
            СпрПодр.КолСотр=СпрПодр.КолСотр-1;
        Иначе
            СпрПодр.КолСотр=СпрПодр.Колсотр+1;
        КонецЕсли;
        СпрПодр.Записать();
        КонецПроцедуры

а почему так?

Это сообщение отредактировал(а) REn005 - 26.9.2008, 16:47
PM MAIL ICQ Skype   Вверх
REn005
Дата 26.9.2008, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 23.8.2007
Где: MARS

Репутация: нет
Всего: нет



вот все процедуры в дакументе  может что то не там паставлено?написано в модуле документа
        
Код

 Процедура ИзменитьКоличество(УжеПроведен)
        СпрПодр=СоздатьОбъект("Справочник.Подразделения");
        СпрПодр.НайтиЭлемент(Подразделение);
        СпрПодр.ТекущийЭлемент();
        ЕСли УжеПроведен=0 Тогда
            СпрПодр.КолСотр=СпрПодр.КолСотр-1;
        Иначе
            СпрПодр.КолСотр=СпрПодр.КолСотр+1;
        КонецЕсли;
        СпрПодр.Записать();
     КонецПроцедуры
     

Процедура ОбработкаПроведения()

    //Здесь следует написать алгоритм проведения документа
    СпрСотрудники=СоздатьОбъект("Справочник.Сотрудники");
    СтатусПроведения=0;
    ВыбратьСтроки();
    Пока ПолучитьСтроку()= 1 Цикл 
        Если Проведен()=1 тогда
            Если СпрСотрудники.НайтиЭлемент(Сотрудник)=1 тогда
                СпрСотрудники.Состояние=Перечисление.ПринятУволен.Уволен;
                СпрСотрудники.Записать();
            Иначе
                Предупреждение("В справочнике 'Сотрудники'нет сотрудника,соотвествующего данному документу! ");
                СтатусВозврата(0);
            КОнецЕсли;
        Иначе 
            СпрСотрудники.НайтиЭлемент(Сотрудник);  
            СпрСотрудники.ПриказОбУвольнении=ТекущийДокумент();
            СпрСотрудники.Состояние=Перечисление.ПринятУволен.Уволен;
            СпрСотрудники.Записать();
            ИзменитьКоличество(СтатусПроведения);
        КОнецЕсли;
    КонецЦикла;
КонецПроцедуры

Процедура ОбработкаУдаленияПроведения()
    СпрСотрудники= СоздатьОбъект("Справочник.Сотрудники");
    СтатусПроведения=1;
    ВыбратьСтроки();
    Если 
    Вопрос("Вы уверены,что хотите отменить увольнение?","Да+Нет")="Да"
    Тогда
        Пока ПолучитьСтроку()=1
        Цикл
            Если СпрСотрудники.НайтиЭлемент(Сотрудник)=1 тогда
            СпрСотрудники.ПриказОбУвольнении=0; 
            СпрСотрудники.Состояние=Перечисление.ПринятУволен.Принят;
            СпрСотрудники.Записать();
            ИзменитьКоличество(СтатусПроведения);
            КонецЕсли; 
             КонецЦикла;

    
           КонецЕсли;
      
    КонецПроцедуры


Это сообщение отредактировал(а) REn005 - 26.9.2008, 16:48
PM MAIL ICQ Skype   Вверх
Zero
Дата 28.9.2008, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 15
Всего: 24



1. ты посмотри что ты указываешь в качестве параметра в строке:
Код

СпрПодр.НайтиЭлемент(Подразделение);
Параметр Подразделение должен являтся реквизитом документа с агрегатным типом Справочник.Подразделения. Если это не так, тогда при вызове метода НайтиЭлемент вернётся пустое значение, а далее вылезет твоя ошибка.
Либо этот параметр должен содержать ссылку на элемент справочника Подразделения.
2. СпрПодр.ТекущийЭлемент();
Это вообще к чему? Если ты к переменной СпрСотрудники применяешь функцию СоздатьОбъект то данная переменная и так является текущим элементом, а не ссылкой - строку можешь убрать.
PM MAIL ICQ   Вверх
REn005
Дата 30.9.2008, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 23.8.2007
Где: MARS

Репутация: нет
Всего: нет



 а какой именно реквезит? табличной части или  шапки. у меня два документа    в одной  параметр Подразделение  в реквезите шапке ,а в другой он реквезит таблияной части.для обоих докмунетов в глобалном модуле 
   
Код

Процедура ИзменитьКоличество(УжеПроведен,Конт) Экспорт
        СпрПодр=СоздатьОбъект("Справочник.Подразделения");
        СпрПодр.НайтиЭлемент(Конт.Подразделение);
     
        ЕСли ((УжеПроведен=1) и(Конт.Вид()="ПриказОПриемеНаРаботу")) или((УжеПроведен=0) и (КОнт.Вид()="ПриказОбУвольнении")) Тогда
            СпрПодр.КолСотр=СпрПодр.КолСотр-1;
        Иначе
            СпрПодр.КолСотр=СпрПодр.Колсотр+1;
        КонецЕсли;
        СпрПодр.Записать();
        КонецПроцедуры 
    

для документа где ПОдразделение в реквезите шапке нормално работает, а для другова документа ругаеца
Код

СпрПодр.КолСотр=СпрПодр.КолСотр-1;
{Глобальный модуль(7)}: Не выбран элемент!

можно ето как небуть исправить?
PM MAIL ICQ Skype   Вверх
Itsys
Дата 30.9.2008, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 7
Всего: 34



Это значит, что строка документа, где указано подразделение не выбрана, т.е. Конт.Подразделение не определена.

Конт - это контекст документа или объект созданный функцией СоздатьОбъект()?

Если второе, то перед вызовом твоей процедуры необходимо инициализировать выбор и получение строки

ЗЫ Ошибка может быть в том, что реально подраздление не выбрано (процедура вызывается до выбора подразделения) в этом случае надо просто поставить заглушку...

Код

Процедура ИзменитьКоличество(УжеПроведен,Конт) Экспорт
        Если ПустоеЗначение(Конт.Подразделение) = 1 Тогда
                Возврат;
        КонецЕсли;
        СпрПодр=СоздатьОбъект("Справочник.Подразделения");
        СпрПодр.НайтиЭлемент(Конт.Подразделение);
     
        Если ((УжеПроведен=1) и(Конт.Вид()="ПриказОПриемеНаРаботу")) или((УжеПроведен=0) и (КОнт.Вид()="ПриказОбУвольнении")) Тогда
            СпрПодр.КолСотр=СпрПодр.КолСотр-1;
        Иначе
            СпрПодр.КолСотр=СпрПодр.Колсотр+1;
        КонецЕсли;
        СпрПодр.Записать();
КонецПроцедуры 

PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "1C: Предприятие, SAP, ERP и учётные системы"
stron

Запрещается!

1. Обсуждение крэков, кейгенов и других подобных программ

Пробуйте искать сами или обращайтесь в приват к участникам форума.

Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения.

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

2. Давать ссылки на взломанные продукты

  • Пожалуйста, пользуйтесь поиском перед тем, как задать вопрос - возможно ответ уже есть на форуме.
  • Название темы должно отражать её суть
  • Действия модераторов можно обсудить здесь

С уважением, stron, Pegas.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | 1C: Предприятие, SAP, ERP и учётные системы | Следующая тема »


 




[ Время генерации скрипта: 0.0480 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.