• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

ВыбратьПоЗначению

  • Автор темы Helena
  • Дата начала
Статус
Закрыто для дальнейших ответов.
H

Helena

У меня 3 вида документов: изменение, увольнение и прием. Мне надо выбрать все документы, содержащие заданное поле.
Спр=СоздатьОбъект("Справочник.Штатное");

Прием=СоздатьОбъект("Документ.Прием");
Измен=СоздатьОбъект("Документ.Изменения");
Увольнение=СоздатьОбъект("Документ.Увольнение");
Измен.ВыбратьПоЗначению(,Период,"Штатное",Спр.ТекущийЭлемент);

1 ошибка – выборка делается по конкретному документу
2 – даже если сделать только по доку Изменение, то выдает ошибку «Объект - документ определенного вида!»
Подскажите, пожалуйста, как тут быть?
 
V

vitfil

Измен=СоздатьОбъект("Документ");
Измен.ВыбратьПоЗначению(,Период,"Штатное",Спр.ТекущийЭлемент);
Документ должен быть неопределенного вида.
 
L

LSH

Для: Helena

Винмательно читаем ЖКК или помощь по встроенному языку.

Метод ВыбратьПоЗначению применяется только для документа НЕОПРЕДЕЛЕННОГО вида и ТОЛЬКО по общим реквизитам документов либо графам отбора журналов:

Док = СоздатьОбъект("Документ");
Док.ВыбратьПоЗначению(НачДата,КонДата,"Какой_то_Общий_реквизит",Значение_Этого_реквизита);
...
 
H

Helena

Все равно ошибка - "Объект - документ определенного вида!"

Сотр=СоздатьОбъект("Справочник.Сотрудники");
Сотр.ВыбратьЭлементыПоРеквизиту("Штатное",Спр.ТекущийЭлемент(),,);

ошибка - Неверное имя реквизита!
хотя реквизист Штатное в спавочник Сотрудники ТОЧНо есть

кажется пока ошибки закончились
спасибо :ph34r:
 
H

Helena

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

Все документы вида Док содержат поле Категория, но почему-то все равно выдается ошибка: "Поле агрегатного объекта не обнаружено (категория)"
:)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!