8.х Автозаполнение даты в ячейках табличной части

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Семен Сосницкий, 14 апр 2015.

  1. TopicStarter Overlay
    Семен Сосницкий
    Offline

    Семен Сосницкий Опытный в 1С

    Регистрация:
    21 июл 2014
    Сообщения:
    163
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте! Имеется табличная часть обработки с четырьмя полями - "Наименование", "Количество", "Дата начала", "Дата окончания". Необходимо, чтобы при добавлении в табличную часть новой строки поля "Дата начала" и "дата окончания" заполнялись автоматически датой начала недели и датой конца недели. Как это реализовать? В каком событии необходимо прописывать процедуру, в "ПередНачаломДобавления"?
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Посмотрите у ТЧ какие есть обработчики событий ?
  3. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну пропишите ПередНачаломДобавления установите НачалоНедели(ТекущаяДата()) и КонецНедели(ТекущаяДата())
  4. TopicStarter Overlay
    Семен Сосницкий
    Offline

    Семен Сосницкий Опытный в 1С

    Регистрация:
    21 июл 2014
    Сообщения:
    163
    Симпатии:
    0
    Баллы:
    26
    Ну мне кажется ПередНачаломДобавления больше всего подходит.

    Draco, это все понятно. А вот как мне обратиться к ячейке строки? Непонятно, в данном событии строка вообще уже существует или еще нет?
  5. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    При начале редактирования вот так пропишите
    Код:
    Процедура ТабличноеПоле1ПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    
        Если Элемент.ТекущиеДанные.Колонка1='00010101' тогда   
            Элемент.ТекущиеДанные.Колонка1=ТекущаяДата();
        Конецесли;   
    КонецПроцедуры
  6. TopicStarter Overlay
    Семен Сосницкий
    Offline

    Семен Сосницкий Опытный в 1С

    Регистрация:
    21 июл 2014
    Сообщения:
    163
    Симпатии:
    0
    Баллы:
    26
    Ошибка: Значение не является значением объектного типа (Колонка2)
    Вот у меня проблема, не умею я к определенной ячейке табличного поля обращаться, запутался пока гуглил.:(
  7. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    У Вас колока так и называется?

    Вложения:

    • ТУст.epf
      Размер файла:
      7,2 КБ
      Просмотров:
      4
  8. TopicStarter Overlay
    Семен Сосницкий
    Offline

    Семен Сосницкий Опытный в 1С

    Регистрация:
    21 июл 2014
    Сообщения:
    163
    Симпатии:
    0
    Баллы:
    26
    Туплю, прошу прощения. А что является наименованием колонки - наименование реквизита табличной части обработки, или имя поля таблицы, которую я добавил на обработку?
  9. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    изя реквизита ТЧ - через отладчки войдит е в Элемент.текущие данные и все увидите
  10. TopicStarter Overlay
    Семен Сосницкий
    Offline

    Семен Сосницкий Опытный в 1С

    Регистрация:
    21 июл 2014
    Сообщения:
    163
    Симпатии:
    0
    Баллы:
    26
    Посмотрел в отладчике, там почему-то текущие данные не определены.
    [​IMG]
  11. TopicStarter Overlay
    Семен Сосницкий
    Offline

    Семен Сосницкий Опытный в 1С

    Регистрация:
    21 июл 2014
    Сообщения:
    163
    Симпатии:
    0
    Баллы:
    26
    Видимо проблема в том, что данное событие вызывается действительно до создания новой строки, поэтому в текущих данных и пусто.
  12. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    У меня все нормально - я вот Вам обработку прикрепил - там же все делается как надо?
  13. TopicStarter Overlay
    Семен Сосницкий
    Offline

    Семен Сосницкий Опытный в 1С

    Регистрация:
    21 июл 2014
    Сообщения:
    163
    Симпатии:
    0
    Баллы:
    26
    Да, в вашей обработке все нормально. Может дело в том, что у вас неуправляемая форма, а у меня управляемая?
  14. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну с этого и надо было начинать то. Там да, скорее всего иначе будет
  15. TopicStarter Overlay
    Семен Сосницкий
    Offline

    Семен Сосницкий Опытный в 1С

    Регистрация:
    21 июл 2014
    Сообщения:
    163
    Симпатии:
    0
    Баллы:
    26
    Нет, все, я понял. Дело не в этом, просто надо было все засунуть в событие "ПриНачалеРедактирования" - у вас так и сделано, а я засунул все в ПередНачаломДобавления. Блин, извиняюсь. Где бы почитать подробнее, в какой именно момент происходят эти события, а то в справке как-то размыто описано :)
  16. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну я просто сейчас вот повторил то же самое на управляемой и все заработало. Ну там же по наименованию понятно когда и что. через отладчик можно всегда посмотреть что имеем

    Вложения:

    • ТУст1.epf
      Размер файла:
      6,4 КБ
      Просмотров:
      2
  17. TopicStarter Overlay
    Семен Сосницкий
    Offline

    Семен Сосницкий Опытный в 1С

    Регистрация:
    21 июл 2014
    Сообщения:
    163
    Симпатии:
    0
    Баллы:
    26
    Не сказал бы, что по названиям понятно. Вот почему мы пихаем в данном случае код в "ПередНачаломРедактирования", может мы и редактировать ничего не будем. Нелогично как-то, что есть "ПередНачаломДобавления", но нет "ПослеДобавления", куда было бы логично засунуть все действия, которые мы должны выполнить после нажатия кнопки "добавить".
  18. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    НУ передНачаломДобавления - логично что строки еще нет. А перед началом редактирования логично что уже есть что редактировать (вы же на самом деле устанавливаетет дату- тем самы редактируете строку)
    Вы же добавляя данные в строку - делаете редактирование строки.
  19. TopicStarter Overlay
    Семен Сосницкий
    Offline

    Семен Сосницкий Опытный в 1С

    Регистрация:
    21 июл 2014
    Сообщения:
    163
    Симпатии:
    0
    Баллы:
    26
    Ну в принципе да. А еще не подскажете, всегда были проблемы с табличными частями. В принципе знаю, что их можно в цикле перебрать. А как можно обратиться к конкретной ячейке, по какому-либо условию, например? Ну например если в ячейке "цена" содержится "300", то поменять на "500".
  20. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Все-равно нужно использовать перебор и обращаться к ячейкам для проверки значений. Можно выгрузить в таблицу значений, и свернуть по каким-то полям (что иногда не корректно)

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