Табличная часть документа 1С (часть 2)

Поделиться
HTML-код
  • Опубликовано: 20 дек 2024

Комментарии • 40

  • @ВиталийАнгелов-н6ъ
    @ВиталийАнгелов-н6ъ 5 лет назад +12

    Лично меня уже радует то, что я увидел ошибки, допущенные Ильей еще до момента их выявления компилятором. А я начал учить курс 1С только пока по данным видео. Отсюда логичный вывод - что видео дают положительный эффект. Спасибо, Илья!

  • @slmike1827
    @slmike1827 3 года назад +4

    На самом деле, надо больше "защите от дураков" внимания уделить. К примеру, логичнее проверять уже при выборе сотрудника, был ли он уже оформлен на работу ранее, а не при проведении. Если да, то вообще не давать его вводить. Лично я так сделал. И кроме того, отслеживать ситуацию, когда в списке выбрали несколько раз (>1) одного и того же сотрудника. Такие вещи надо отсекать сразу, на моменте ввода, а не потом, когда операция проведения будет орать и ругаться на что-то.

  • @ОлександрКоханчук-р6в

    Начинают появляться особые комментаторы! Я теперь понимаю почему трудно учить людей! А ответ сложен!
    Из: Они просто не практикуются! Они не повторяют пройденный материал! Они не имеют паралельной задачи! Они не преподают здесь материал примерами! Они зляться когда у них после этого всего что то не получается и валят все проблемы на преподавателя, которому просто интересно учить тех, кто прощает ошибки и помогает ему учить себя!
    Илья такой же как и каждый из нас! Но много ли из нас таких же как Илья?

    • @ARLIAMANJHO
      @ARLIAMANJHO 2 года назад +1

      Ну вот бред же написал, и наверное сам порадовался. Учить людей сложно совсем по другим причинам:
      1. У тебя может быть отличная версия на 1С и нет возможности накатить такую же,
      2. В самой программе существует бардак между работой на толстом и тонком клиенте,
      3. Мозги у людей разные, кто то запоминает и понимает всё с первого раза, кто то со второго, кто то с третьего, а кому то такие объяснения не подходят, чисто по восприятию,
      4. Повторение пройденного материала - необязательный аспект (представь себе, что есть люди, кто параллельно занимается еще и изучением какого нить другого языка программирования),
      5. Учитель - на то и учитель, в первую очередь его задача это научить людей и донести что всё не так сложно, что любую ошибку можно либо решить, либо забить на нее и решить позже.
      6. Ну а по поводу того что Илья такой же как и каждый из вас, ну хз, не видел чтоб он в комментариях кого то байтил

  • @ВиталийАнгелов-н6ъ
    @ВиталийАнгелов-н6ъ 5 лет назад +4

    На 4:51 запускаю приложение и вываливается куча ошибок....Переменная Сотрудник не определена....Ковырял, ковырял, не нашел причину...включил предыдущее видео конец...и увидел, что проморгал , что Илья закоментировал код печатной формы в документе "Прием сотрудников списком". Так что, кто наступил на те же грабли - закоментите код печатной формы.

    • @artemadeev7444
      @artemadeev7444 4 года назад

      тоже кумекал над этим и додумал, что если ввести в табличную часть нескольких сотрудников, то программа не сможет понять даже кому печатать договор.

  • @SakadinVasya
    @SakadinVasya Год назад +1

    Илья Привет! С гипер ссылками я разобрался самостоятельно))) , еще момент при попытке создать документ в списке, система начинает Ругаться и выдает ошибки в модуле который мы создавали для табличной формы.

  • @pavelpavlov5005
    @pavelpavlov5005 Год назад +2

    Ругается на этапе проведения, пишет "Преобразование значения к типу Булево не может быть выполнено". Отправляет в строки:
    Если СотрудникПринятНаРаботу(Строка.Сотрудник) Тогда

    Сообщить("Документ не проведен! Ссотрудник "+ Строка.Сотрудник.Наименование + " принят на работу другим документов!");
    Отказ = Истина;
    Возврат;
    ____
    Несколько раз посмотрел на экран, код идентичный, но пришлось гуглить, в чём проблема, оказалось, что условный оператор как-то неправильно читается, пришлось самому методом тыка как-то решать проблема.
    Ввёл "= Истина" в первой строке и получилось:
    Если СотрудникПринятНаРаботу(Строка.Сотрудник) = Истина Тогда
    ___
    Ошибка перестала вылетать, новый сотрудник стал проводиться, но что-то всё равно не так

  • @ВиталийСолошенко
    @ВиталийСолошенко 9 месяцев назад

    После создании Документа приема на работу и внесение сотрудника на работу, нажимаю ОК. Открываю заново приказ, а внутри нет записей о новых сотрудниках. Где косяк может быть?

  • @Школа1С-видеоурокибесплатно

    Переделка обработчика проведения для документа с табличной частью. Возможные ошибки в документе.
    Услуги 1С программиста в Москве:
    1cproger.ru/
    Читайте статьи по 1С на нашем сайте:
    programmist1s.ru/materialyi-po-1s/

    • @luckyea7
      @luckyea7 5 лет назад

      Илья, Вы получаете миллион?

  • @culbaev
    @culbaev 7 лет назад +2

    Можешь показать, как программно заполнять табличную часть документа из другого обработчика???

  • @kilka13
    @kilka13 3 года назад +1

    все сделала 1 в 1, при проведении документа "Прием на работу (списком)" пишет Поле объекта не обнаружено (КадровыеПеремещения)

    • @_Otets_
      @_Otets_ 2 года назад +1

      Скорее всего данный документ не установлен как регистратор для регистра сведений "Кадровые движения". Вы наверное создавали прием на работу списком с нуля, а не как автор - копировали обычный прием на работу и его редактировали.

  • @ДимаСусский-ю7ш
    @ДимаСусский-ю7ш 7 лет назад +1

    Почему было просто не обратиться к Выборке? Как раз не было бы циклического обращения к запросу....

  • @NeironWolf
    @NeironWolf 25 дней назад

    лучший

  • @lankaster4769
    @lankaster4769 6 лет назад +2

    чудеса какие-то, в коде уже ошибок нет, за кадром его изменил, а показать не судьба было?
    всплывает ошибка "Переменная не определена (Сотрудник)"
    ибо в первой части видео этот и другие реквизиты были удалены и взамен создавались реквизиты табличной части, и как в коде сослаться на эти реквизиты? ничего не объяснил, не показал исправленный код, а показал уже работу исправленного кода.

    • @jerryferry6625
      @jerryferry6625 5 лет назад

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

    • @lankaster4769
      @lankaster4769 5 лет назад

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

    • @jerryferry6625
      @jerryferry6625 5 лет назад

      @@lankaster4769,я вот хочу изучать эту отрасль. к какому каналу обратиться лучше не подскажешь?где информативнее будет и тд. а про отьебись да я замечал немного ...

    • @lankaster4769
      @lankaster4769 5 лет назад

      @Jerry Ferry выше уже указал какие курсы лучше, Павла Чистова, можно еще Камкова но с его курсом там тоже могут быть трудности, на каком то этапе нужны будут конфигурации которых в сети никто найти не может, они есть у тех кто оффлайн курс проходил, но в принципе можно и без них обойтись, чисто просмотр видео, вполне доступно объясняет. Но в приоритете курсы Чистова.

    • @машаэгзибитовна
      @машаэгзибитовна 5 лет назад +2

      Вообще - то он его закоментировал!!! И сказал потом разберёмся. Так же если ты внимательно смотрел эти 2 урока ты легко переделаешь этот обработчик сам.

  • @АндрейК-п9ш7х
    @АндрейК-п9ш7х 2 года назад

    А где табличная часть документа (часть 3) ?

  • @joeyjordison8552
    @joeyjordison8552 5 лет назад +1

    Почему вместо "Такой Сотрудник " мы пишем : Строка.Сотрудник.Наиминование.? А в движении Строка.Сотрудник. это не одно и тоже?

    • @user-abc-abc
      @user-abc-abc 3 года назад

      Получается что немного разное...

  • @kilka13
    @kilka13 3 года назад

    спасибо!

  • @flexterion
    @flexterion Год назад

    Чингачгук порадовал

  • @МашаХомячок-г5ъ
    @МашаХомячок-г5ъ 6 лет назад +1

    Откуда столько несправедливости: себе миллион, а Чингачкуку 50 тысяч только??????

  • @snappesisnappes
    @snappesisnappes 2 года назад

    Себе - 1 000 000
    Чингачкуку - 50 000
    Чингачкук тоже будет нормально получать ...
    Чингачкук moment 0.0

    • @QwertyVital
      @QwertyVital 7 месяцев назад

      тоже обратил внимание🤣

  • @gottastoppo
    @gottastoppo 4 года назад

    Когда код закончила верно на 15 секунд раньше: Превозмогла учителя!

    • @gottastoppo
      @gottastoppo 4 года назад

      Только вот систему я все-таки сломала, круто. Теперь у меня оригинал опустел, а в новом все полное. И еще ограничение прилетело, как же я его ждала.
      Чтож, на этом, походу, практика заканчивается, пора кормиться теорией.

    • @spectraleon9013
      @spectraleon9013 4 года назад

      @@gottastoppo Сообщить("Извините, какое ограничение?")

    • @gottastoppo
      @gottastoppo 4 года назад

      @@spectraleon9013 уже разобралась. У меня оно сработало, когда я пыталась написать код очистки регистра сведений.
      Я потом его удалила и ограничение ушло. Либо оно сработало из-за специфичного содержания кода, либо из-за количества уже имеющихся кодов, не знаю, но суть в том, что программа не дает делать то, что можно делать в лицензионке.

  • @joeyjordison8552
    @joeyjordison8552 5 лет назад

    ладно по ковыряю отладчиком

  • @nimb266
    @nimb266 3 года назад +3

    Я тут услышал, что запросы в цикле не есть = хорошо. Подумал как сделать, о чудо, я сделал это!
    Функция ПринятЛиСотрудникНаРаботу()

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | КадровыеПеремещения.Сотрудник
    |ИЗ
    | РегистрСведений.КадровыеПеремещения КАК КадровыеПеремещения
    |ГДЕ
    | КадровыеПеремещения.Сотрудник В
    | (ВЫБРАТЬ
    | ПриемНаРаботуСпискомРаботники.Сотрудник
    | ИЗ
    | Документ.ПриемНаРаботуСписком.Работники КАК ПриемНаРаботуСпискомРаботники
    | ГДЕ
    | ПриемНаРаботуСпискомРаботники.Ссылка = &Ссылка)
    | И КадровыеПеремещения.ПричинаИзменениеСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу)";

    Запрос.УстановитьПараметр("Ссылка", Ссылка); //ссылка - это ссылка этогоже документа ПриемНаРаботуСписком,, в модуле которого находимся.

    РезультатЗапроса = Запрос.Выполнить();
    ТабРезультата = РезультатЗапроса.Выгрузить();

    Возврат ТабРезультата;


    КонецФункции // ПринятЛиСотрудникНаРаботу()
    Процедура ОбработкаПроведения(Отказ, РежимПроведения)

    ТабРезультат = ПринятЛиСотрудникНаРаботу();

    Для каждого строка Из Работники Цикл

    Если ТабРезультат.Найти(строка.Сотрудник, "Сотрудник") Неопределено Тогда
    Сообщить("Документ не проведен! " + строка.Сотрудник + " уже принят на работу другим документом.");
    Отказ = Истина;
    КонецЕсли;

    КонецЦикла;

    Если Отказ = Истина Тогда
    Возврат;
    КонецЕсли;
    // регистр КадровыеПеремещения
    Движения.КадровыеПеремещения.Записывать = Истина;
    Движения.КадровыеПеремещения.Очистить();

    Для каждого строка Из Работники Цикл

    Движение = Движения.КадровыеПеремещения.Добавить();
    Движение.Период = Дата;
    Движение.Сотрудник = строка.Сотрудник;
    Движение.Должность = строка.Должность;
    Движение.Подразделение = строка.Подразделение;
    Движение.Оклад = строка.Оклад;
    Движение.ПричинаИзменениеСостояния = Перечисления.ПричиныИзмененияСостояния.ПриемНаРаботу;

    КонецЦикла;

    КонецПроцедуры

    • @user-yp7vb1qo5o
      @user-yp7vb1qo5o 6 месяцев назад

      Добрый день!
      Решил воспользоваться Вашим кодом, чтобы более глубоко разобраться в теме. Но не смог понять смысл вложенного запроса, установки параметра "Ссылка". Я закомментировал часть Вашего кода в запросе, как понимаю логику работы. И вроде бы всё хорошо выполняется. Но не могли бы Вы пояснить для чего вложенный запрос?
      Вот то, что работает у меня:
      Функция ПринятЛиСотрудникНаРаботу()

      Запрос = Новый Запрос;
      Запрос.Текст =
      "ВЫБРАТЬ
      | КадровыеПеремещения.Сотрудник
      |ИЗ
      | РегистрСведений.КадровыеПеремещения КАК КадровыеПеремещения
      |ГДЕ
      //| КадровыеПеремещения.Сотрудник В
      //| (ВЫБРАТЬ
      //| ПриемНаРаботуСпискомРаботники.Сотрудник
      //| ИЗ
      //| Документ.ПриемНаРаботуСписком.Работники КАК ПриемНаРаботуСпискомРаботники
      //| ГДЕ
      //| ПриемНаРаботуСпискомРаботники.Ссылка = &Ссылка)
      | КадровыеПеремещения.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояний.ПриемНаРаботу)";

      //Запрос.УстановитьПараметр("Ссылка", Ссылка); //ссылка - это ссылка этогоже документа ПриемНаРаботуСписком,, в модуле которого находимся.

      РезультатЗапроса = Запрос.Выполнить();
      ТабРезультата = РезультатЗапроса.Выгрузить();

      Возврат ТабРезультата;


      КонецФункции // ПринятЛиСотрудникНаРаботу()
      Процедура ОбработкаПроведения(Отказ, РежимПроведения)

      ТабРезультат = ПринятЛиСотрудникНаРаботу();

      Для каждого строка Из Работники Цикл

      Если ТабРезультат.Найти(строка.Сотрудник, "Сотрудник") Неопределено Тогда
      Сообщить("Документ не проведен! " + строка.Сотрудник + " уже принят на работу другим документом.");
      Отказ = Истина;
      КонецЕсли;

      КонецЦикла;

      Если Отказ = Истина Тогда
      Возврат;
      КонецЕсли;
      // регистр КадровыеПеремещения
      Движения.КадровыеПеремещения.Записывать = Истина;
      Движения.КадровыеПеремещения.Очистить();

      Для каждого строка Из Работники Цикл

      Движение = Движения.КадровыеПеремещения.Добавить();
      Движение.Период = Дата;
      Движение.Сотрудник = строка.Сотрудник;
      Движение.Должность = строка.Должность;
      Движение.Подразделение = строка.Подразделение;
      Движение.Оклад = строка.Оклад;
      Движение.ПричинаИзменениеСостояния = Перечисления.ПричиныИзмененияСостояния.ПриемНаРаботу;

      КонецЦикла;

      КонецПроцедуры