Каким образом использовать текст запроса в программном коде 1С. Пример использования выборки. Проверка в обработке проведения Услуги 1С программиста в Москве: 1cproger.ru/ Читайте статьи по 1С на нашем сайте: programmist1s.ru/materialyi-po-1s/
Здравствуйте. Подскажите пожалуйста ошибку. Не удается выполнить отмену проведения ""Приема на работу". Принажатии кнопки отмена проведения и закрытии формы, документ автоматически проводиться. Где искать ошибку?
Возврат Истина и Возврат Ложь в функции что означают? Т.е. Если Возврат Истина то функция выполнилась, если ложь - то нет? И тогда можно делать движения?
Собственно говоря сумел решить рспространненные проблему приема-увольнения сотрудников с возможностью повторно приема обрабно на работу. Решение достаточно простое: Нужна 1 функция с 2-мя запросами. В итоге эта функция вернет нам значение = количество принятий на работу минус количество увольнений. Таким образом мы знаем, что если эта функуция равна 1 - сотрудник уже принят, соответственно во всех остальных случаях можно выполнять заполнение регистра или регистров данными о приёме.
Куда пропали из таблицы поля Код и Наименование? Никак не могу от них избавиться. Хочу, чтобы в шапке и полях ввода были мои специфические поля. Или в справочниках это невозможно?
С таким запросом не возникнут проблемы при приёме на работу если сотрудник уже работает. Спасибо за уроки Илья) ВЫБРАТЬ КадровыеПеремещенияСрезПоследних.Период, КадровыеПеремещенияСрезПоследних.Сотрудник, КадровыеПеремещенияСрезПоследних.ПричинаИзмененияСостояния ПОМЕСТИТЬ ВТ ИЗ РегистрСведений.КадровыеПеремещения.СрезПоследних КАК КадровыеПеремещенияСрезПоследних ГДЕ (КадровыеПеремещенияСрезПоследних.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояний.Перемещение) ИЛИ КадровыеПеремещенияСрезПоследних.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояний.ПриемНаРаботу)) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Период, ВТ.Сотрудник, ВТ.ПричинаИзмененияСостояния ИЗ ВТ КАК ВТ ГДЕ ВТ.Сотрудник = &Сотрудник
Спасибо за то что видео уроки в основном короткие. А то невозможно стерпеть чувство изнеможения от поступающей информации с одновременным интересом к тому о чем говорится. Спасибо от души !!!
Привет,Подскажи пожалуйста ,что не так? {Документ.ПриемНаРаботу.МодульОбъекта(28,33)}: Переменная не определена (Сотрудник) Если СотрудникПринятНаРаботу(
Привет,Подскажи пожалуйста ,что не так? {Документ.ПриемНаРаботу.МодульОбъекта(28,33)}: Переменная не определена (Сотрудник) Если СотрудникПринятНаРаботу(
Да, действительно. Но тогда нужно было бы объяснять как пользоваться Синтаксис-помощником, чтобы вызвать его для поиска описания функции "Следующий()". Где бы мы увидели, что она(функция) возвращает значения типа Булево. Т.е. при положительном результате функция вернёт "Истина", а при противоположном "Ложь".
Привет,Подскажи пожалуйста ,что не так? {Документ.ПриемНаРаботу.МодульОбъекта(28,33)}: Переменная не определена (Сотрудник) Если СотрудникПринятНаРаботу(
Совершенно верно, я об этом также сразу подумал. Но тема урока не об этом. Вы уже дальше мыслите и правильно. А многие, изучая с нуля, ещё не могут об этом задумываться, так как не имеют опыта работы, чтобы понимать что это пригодиться потом в реальной работе. А кто-то, просто, ещё сам синтаксис не знает, чтобы это мог на данном уровне реализовать. Мы все разные :)
Я бы лучше написал: Возврат Не Запрос.Выполнить().Пустой(); Вместо всего этого куска кода: Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Если Выборка.Следующий() Тогда Возврат Истина; КонецЕсли; Возврат Ложь; Так и логика более явная и кода в разы меньше
Привет,Подскажи пожалуйста ,что не так? {Документ.ПриемНаРаботу.МодульОбъекта(28,33)}: Переменная не определена (Сотрудник) Если СотрудникПринятНаРаботу(
А что будет если провести прием на работу, сделать кадровое перемещение и затем отметить проведение документа прием на работу? Ведь получается, что провести его назад мы не сможем, т.к. в регистре будет запись, сделанная кадровым перемещением. Или я не прав?
Почему пишем Движение.ПризнакИзмененияСостояния = ПеречислениЯ....., а в запросе уже проверяем КадровыеПеремещения.ПричинаИзмененияСостояния = ПеречеслениЕ....?
Сначала не понял про что спрашиваете, так как у вас указан ПРИЗНАК...., а не ПРИЧИНАизмененияСостояния. Но это, просто, ваша опечатка как я понял. А по вопросу действительно, в запросе единственное число, а в процедуре модуля уже множественное число. Как я, то я не пытаюсь запомнить где да как, так как всё равно ошибетесь. Я для себя запомнил только сам факт, что где-то нужно в единств. числе, а где-то во множественном. Всё равно конфигуратор вам выдаст ошибку при сохранении, всегда можно исправить.
Ниже в комментариях уже "Александр Мукаев 2 года назад" спрашивал об этом и Илья ответил, что "В программном коде мы пишем во множественном числе ("Перечисления..."), а в запросе - в единственном ("Перечисление...")."
Конечно! Проще всего через отладчик посмотреть значение выполнения выражения РезультатЗапроса.Выгрузить(). Это будет вполне наглядная таблица значений.
Если использовать не весь регистр, а СрезПоследних, тогда Прием по сотруднику, который работал, уволился, а потом опять решил оформиться - проведется без проблем.
Ну наконец то! Ну нельзя же так долго одну тему) всю ночь потратил. Но видео супер! За ночь решил вопрос для нашей фирме - выборка емейлов у кого роль получение счетов и вставка строки в кому почтового отправления
У меня до выставления параметра "Удалять автоматически" документ не мог ни провестись повторно, ни записаться. После установки данного параметра в свойствах документа "ПриемНаРаботу", у меня проводится первая запись неограниченное кол-во раз. И при нажатии на кнопку "запись" в документе не возникает дубликата.
При вызове функции СотрудникПринятНаРаботу мы передаём в неё параметр Сотрудник, но как в него записались введённые ФИО если нижняя часть кода ещё не выполнялась?? код же должен построчно выполняться, так?
Подскажите, пожалуйста, в чем может быть ошибка. Вроде все сделала правильно, но синтаксический контроль выводит сообщение, что недостаточно фактических параметров (СотрудникПринятНаРаботу)...
А почему выбран Регистр КадровыеПеремещения, а не КадровыеПеремещенияСрезПоследних? Т.к. сотрудник, на день создания нового Приема на работу, мог уже быть уволен. Т.е. первый Прием на работу уже не актуален.
Он вначале этого видео об этом говорит. Что в типовых решениях принято При принятии вновь сотрудника заводить новый элемент объекта Справочник. т.е. Будет в справочнике уже два одинаковых элемента по полю Наименование. То что вы спрашивает это логично, и я бы также сделал, но тема урока не об этом. Ваш вариант нужно дорабатывать и ставить ограничения. Я еще несколько занятий назад уже так сделал. Это дело каждого.
Спасибо смотрю с первого урока, Признаюсь пару видео пересматривал по несколько раз пока не допер. Надеюсь все досмотрю до конца обязательно. Смотрю видео 2017 года не пойму неужели с того момента ничего не изменилось или впереди полностью исчерпывающий материал?
Привет,Подскажи пожалуйста ,что не так? {Документ.ПриемНаРаботу.МодульОбъекта(28,33)}: Переменная не определена (Сотрудник) Если СотрудникПринятНаРаботу(
Урок хороший. Но вот очередной раз наталкиваюсь что в большинстве случаев учителя не рассказывают про функции для обработки запросов. Будет где-то поподробнее рассказано?
У меня не получилось, вроде все также делал. А где-то можно базу с примером скачать? Если я скопирую запрос, созданный в конструкторе запроса и запущу его в Консоле запроса - запрос должен сработать?
Привет,Подскажи пожалуйста ,что не так? {Документ.ПриемНаРаботу.МодульОбъекта(28,33)}: Переменная не определена (Сотрудник) Если СотрудникПринятНаРаботу(
Что за ошибка? Не дает построить запрос Неверные параметры "Перечисления.ПричиныИзмененияСостояний.ПриемНаРаботу" Перечисления.ПричиныИзмененияСостояния = ЗНАЧЕНИЕ(
Добрый день. Попробовала не указывать "Возврат" в //Проверке, второй документ не проводится ( как и должно быть). Тем же экспериментальным путем попробовала прописать Возврат, но не указать Отказ=Истина (вот здесь документ провелся+ показано служебное сообщение "Документ не проведен"). Таким образом, "Возврат", как я понимаю, можно всё-таки не прописывать 🤔, по крайней мере, в моей версии. Но на всякий случай, думаю, лучше "приучить" себя прописывать "Возврат"😅
Привет,Подскажи пожалуйста ,что не так? {Документ.ПриемНаРаботу.МодульОбъекта(28,33)}: Переменная не определена (Сотрудник) Если СотрудникПринятНаРаботу(
Блин, та же беда, что с Посчитайкой. Параметр (сотрудник) устанавливается нормально. А вот Результат = Запрос.Выполнить(); приводит к неопределенному значению (если этот же запрос выполнить в консоле, то он нормально выбирает нужного сотрудника). В итоге Выборка.Следующий() - Ложь и функция работает неверно. В чем может быть ошибка!? ((
Запрос.УстановитьПараметр("Сотрудник", Сотрудник); Вот так пишите? Сначала в кавычках название параметра, потом какой реквизит передаем. Выложите часть кода которая не правильно работает.
Не пойму, почему то выдает ошибку что {Документ.ПриемНаРаботу.МодульОбъекта(31,32)}: Переменная не определена (сотрудник) если сотрудникПринятНаРаботу(
Привет,Подскажи пожалуйста ,что не так? {Документ.ПриемНаРаботу.МодульОбъекта(28,33)}: Переменная не определена (Сотрудник) Если СотрудникПринятНаРаботу(
Не понятно зачем в процедуре Обработка проведения писали Возврат. Ведь если функция отработала, то и получили Отказ = Истина, дальше же код не должен отрабатываться в теле Процедуры?
Отказ - это свойство/параметр процедуры, а не оператор прерывания процедуры. А вот оператор "Возврат" предназначен для прерывания работы процедуры. (Не важно, что этот ответ человеку не нужен, я себя проверяю, да для тех, кто читать будет потом комментарии.)
@@nimb266 Привет,Подскажи пожалуйста ,что не так? {Документ.ПриемНаРаботу.МодульОбъекта(28,33)}: Переменная не определена (Сотрудник) Если СотрудникПринятНаРаботу(
А что будет если провести прием на работу, сделать кадровое перемещение и затем отметить проведение документа прием на работу? Ведь получается, что провести его назад мы не сможем, т.к. в регистре будет запись, сделанная кадровым перемещением. Или я не прав?
Привет,Подскажи пожалуйста ,что не так? {Документ.ПриемНаРаботу.МодульОбъекта(28,33)}: Переменная не определена (Сотрудник) Если СотрудникПринятНаРаботу(
Привет,Подскажи пожалуйста ,что не так? {Документ.ПриемНаРаботу.МодульОбъекта(28,33)}: Переменная не определена (Сотрудник) Если СотрудникПринятНаРаботу(
Огромное спасибо! После остальных уроков, этот кажется хардкорным. Но все-таки получилось в нём разобраться. Даже сделал обработку на документах "Увольнение", чтобы несуществующего сотрудника нельзя было уволить. И она заработала. Короче, радости полные штаны, продолжаем учиться)!
Спасибо большое, Илья! В печальное время приходится учиться и пригодится теперь это вообще или нет, никто не знает(. Наставил лайков, хотя ээто сейчас наверно совершенно не актуально стало. Удачи Вам и здоровья!
На данный момент версия 8.3 Вместо "пока выборка" написал "если выборка" , все работает PS При "пока" программа выдаёт ошибку в переходе к булевой переменной и требует конец цикла
Привет,Подскажи пожалуйста ,что не так? {Документ.ПриемНаРаботу.МодульОбъекта(28,33)}: Переменная не определена (Сотрудник) Если СотрудникПринятНаРаботу(