Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
23 Фев 2020, 19:29
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Подстановка значения в строку ТЧ  (Прочитано 383 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Алексей_1985_06

  • **
  • Сообщений: 59
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-09-01
  • Сайт: 
  • Профессия: Ученик 1С
Ребят подскажите, как реализовать:
В ТЧ справочника «ПослужнойСписок» необходимо при добавлении новой строки, значение из столбца «ДатаНачала» (на форме «С какого времени») – перенести в предыдущую строку столбца «ДатаОкончания» (на форме «По какое временя») Картинка во вложении.
Попробовал так, но выходит ошибка:
ТекущСтрока = Элементы.ПослужнойСписок.ТекущиеДанные;
ПредыдущаяСтрока = Элементы.ПослужнойСписок.Получить (ТекущСтрока.НомерСтроки - 2); // Получаем предыдущую строку
ПредыдущаяСтрока.ДатаОкончания = ТекущСтрока.ДатаНачала;
Помогите кто знает !!!:):):)


Оффлайн FanFani

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 1
  • КПД: 8%
  • Регистрация: 2018-08-10
  • Сайт: 
  • Профессия: Программист 1С
Ты пытаешься получить строку у элемента формы, а надо у самого объекта
Примерно так:
ЭтотОбъект.ПослужнойСписок.Получить (ТекущСтрока.НомерСтроки - 2);
Пользуйся чаще Синтаксис-помощником

Оффлайн Алексей_1985_06

  • **
  • Сообщений: 59
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-09-01
  • Сайт: 
  • Профессия: Ученик 1С
Ты пытаешься получить строку у элемента формы, а надо у самого объекта
Примерно так:
ЭтотОбъект.ПослужнойСписок.Получить (ТекущСтрока.НомерСтроки - 2);
Пользуйся чаще Синтаксис-помощником

Подскажите, что то не получается у меня победить!!!
Кто-то может помочь?

&НаКлиенте
Процедура ПослужнойСписокДатаНачалаПриИзменении(Элемент)
ТекущСтрока = Элементы.ПослужнойСписок.ТекущиеДанные; // Получаем текущие данные ТЧ
ДатаНачала = ТекущСтрока.ДатаНачала; // Получаем дату начала в должности
ВсегоСтрок = ЭтаФорма.Объект.ПослужнойСписок.Количество(); //Получаем количество строк табличной части.
// ЗДЕСЬ ОШИБКА ВОЗНИКАЕТ, НЕ МОГУ ПОЛУЧИТЬ СТРОКУ "ВЫШЕ" ТЕКУЩЕЙ
ТекущСтрока.ДатаОкончания.ВсегоСтрок [-1] = ДатаНачала;
КонецПроцедуры


Оффлайн bsn-chita

  • ***
  • Сообщений: 125
  • РЕПУТАЦИЯ: 42
  • КПД: 34%
  • Регистрация: 2017-03-06
  • Сайт: 
  • Профессия: Ученик 1С
Имена менять на свой.
Функция ЭтоПоследняяСтрока(НомерСтроки, ВсегоСтрок)
Возврат НомерСтроки = ВсегоСтрок;
КонецФункции

&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
НомерСтроки = ТекущиеДанные.НомерСтроки;
ВсегоСтрок = Объект.Товары.Количество();
Если ЭтоПоследняяСтрока(НомерСтроки, ВсегоСтрок) Тогда
Объект.Товары[НомерСтроки - 2].Сумма = ТекущиеДанные.Количество;
КонецЕсли;
КонецПроцедуры

Оффлайн LexaK

  • *****
  • Сообщений: 1964
  • РЕПУТАЦИЯ: 581
  • КПД: 30%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
что-ж вы все простыми путями не ходите?
(я бы так учет не вел, но только для вас)
просто в модуле справочника, в процедуре ПередЗаписью() добавьте такой код
Процедура ПередЗаписью(Отказ)
ПослужнойСписок.Сортировать("ДатаНачала");
лкПред = Новый Структура("ДатаОкончания",0); //заглушка, для первой строки
Для каждого лкСтр Из ПослужнойСписок Цикл
лкПред.ДатаОкончания = лкСтр.ДатаНачала;
лкПред = лкСтр;
КонецЦикла;
КонецПроцедуры
Добавлено: 11 Фев 2020, 12:42

Упс, еще одну команду забыл
Процедура ПередЗаписью(Отказ)
    ПослужнойСписок.Сортировать("ДатаНачала");
    лкПред = Новый Структура("ДатаОкончания",0); //заглушка, для первой строки
    Для каждого лкСтр Из ПослужнойСписок Цикл
        лкПред.ДатаОкончания = лкСтр.ДатаНачала;
        лкПред = лкСтр;
    КонецЦикла;
    лкСтр.ДатаОкончания = 0; // последняя запись должна быть без даты окончания
КонецПроцедуры
Помогло? - Нажми СПАСИБО!!!
                       :)

Последний раз редактировалось: LexaK; 11 Фев 2020, 12:42. Причина: Объединение сообщений

Оффлайн Алексей_1985_06

  • **
  • Сообщений: 59
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-09-01
  • Сайт: 
  • Профессия: Ученик 1С
что-ж вы все простыми путями не ходите?
(я бы так учет не вел, но только для вас)
просто в модуле справочника, в процедуре ПередЗаписью() добавьте такой код
Процедура ПередЗаписью(Отказ)
ПослужнойСписок.Сортировать("ДатаНачала");
лкПред = Новый Структура("ДатаОкончания",0); //заглушка, для первой строки
Для каждого лкСтр Из ПослужнойСписок Цикл
лкПред.ДатаОкончания = лкСтр.ДатаНачала;
лкПред = лкСтр;
КонецЦикла;
КонецПроцедуры
Добавлено: 11 Фев 2020, 12:42

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

LexaK Спасибо большое за помощь! Все работает как надо, единственное в случае когда в ТЧ нет записей, возникает ошибка:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{Справочник.ЛичныйСостав.МодульОбъекта(41)}: Значение не является значением объектного типа (ДатаОкончания)
    Стр.ДатаОкончания = 0; // последняя запись должна быть без даты окончания

Подскажите пжл, как исправить???



Оффлайн LexaK

  • *****
  • Сообщений: 1964
  • РЕПУТАЦИЯ: 581
  • КПД: 30%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
да вроде не сложная ошибка
Процедура ПередЗаписью(Отказ)
    ПослужнойСписок.Сортировать("ДатаНачала");
    лкПред = Новый Структура("ДатаОкончания",0); //заглушка, для первой строки
    Для каждого лкСтр Из ПослужнойСписок Цикл
        лкПред.ДатаОкончания = лкСтр.ДатаНачала;
        лкПред = лкСтр;
    КонецЦикла;
    //лкСтр заменить на лкПред
    лкПред.ДатаОкончания = 0; // последняя запись должна быть без даты окончания
КонецПроцедуры
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн Алексей_1985_06

  • **
  • Сообщений: 59
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-09-01
  • Сайт: 
  • Профессия: Ученик 1С
да вроде не сложная ошибка
Процедура ПередЗаписью(Отказ)
    ПослужнойСписок.Сортировать("ДатаНачала");
    лкПред = Новый Структура("ДатаОкончания",0); //заглушка, для первой строки
    Для каждого лкСтр Из ПослужнойСписок Цикл
        лкПред.ДатаОкончания = лкСтр.ДатаНачала;
        лкПред = лкСтр;
    КонецЦикла;
    //лкСтр заменить на лкПред
    лкПред.ДатаОкончания = 0; // последняя запись должна быть без даты окончания
КонецПроцедуры

LexaK Большое Вам спасибо! Все работает как надо!!!


Теги:
 

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

Автор acces969Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 1063
Последний ответ 26 Июн 2017, 14:32
от AsadRoman
Что быстрее: Загрузить табличную часть в запрос и там добавить колонки, или пробежаться циклом по ТЧ и добавить значения в колонки

Автор ZeedРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2150
Последний ответ 11 Июл 2016, 09:00
от vitasw
Как сложить значения Столбца "Объем"

Автор anton.kislovРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 19
Просмотров: 19715
Последний ответ 04 Май 2017, 10:48
от ospov11789
Ошибка "Итератор для значения не определён"

Автор КараулРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 2461
Последний ответ 17 Авг 2016, 11:25
от Караул
Нужна помощь в формировании отчета "Преобразование значения к типу Дата не может быть выполнено"

Автор STLuka1337Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 3229
Последний ответ 14 Ноя 2014, 13:24
от cska-fanat-kz

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
115 Сообщений
DmitriyF DmitriyF
34 Сообщений
LexaK
31 Сообщений
alexandr_ll
28 Сообщений
wise wise
25 Сообщений
Milyausha
21 Сообщений
Alexbis
20 Сообщений
Алексей_1985_06
17 Сообщений
Barberhate
15 Сообщений
VID1234
14 Сообщений

* Кто онлайн

  • Точка Гостей: 241
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal