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

Автор Тема: как сравнить текущую ячейку с предыдущей в табличном поле?  (Прочитано 745 раз)

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

Оффлайн mila1231

  • ***
  • Сообщений: 139
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-06-10
  • Сайт: 
  • Профессия: Ученик 1С
Не могу сообразить, как сохранить значение предыдущей ячейки и в дальнейшем его сравнить с текущем значением ячейки.

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1095
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
в промежуточную переменную
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн LexaK

  • *****
  • Сообщений: 1084
  • РЕПУТАЦИЯ: 284
  • КПД: 26%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
программируете событие формы-таблицы при активизации ячейки, вот простой пример, без учета смены колонки,
&НаКлиенте
Процедура тзДанныеПриАктивизацииЯчейки(Элемент)

Если Элемент.ТекущиеДанные = Неопределено Тогда
//не выбрана строка, выходим
Возврат;
КонецЕсли;

лкТекЗнач = Элемент.ТекущиеДанные[СтрЗаменить(Элемент.ТекущийЭлемент.Имя,Элемент.Имя,"")]; // текущее значение выбранной ячейки

//глПредыдущееЗначение - "Условно глобальная" переменная для хранения предыдущего значения ячейки
//Если ЗначениеЗаполнено(глПредыдущееЗначение) Тогда
Если глПредыдущееЗначение = Неопределено Тогда
//предыдущего значения еще нет, ни чего не делаем
Иначе
//есть предыдущее значение, выполняем нужные действия
// <ваш код> например:
Сообщить("Старое значеение: " + глПредыдущееЗначение + " ,новое значение: " + лкТекЗнач);
КонецЕсли;
//запоминаем текущее значение
глПредыдущееЗначение = лкТекЗнач;

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

Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн mila1231

  • ***
  • Сообщений: 139
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-06-10
  • Сайт: 
  • Профессия: Ученик 1С
моё предположение было такое...
Перем ПредДата  ;

Процедура ОсновныеДействияФормывыдача(Кнопка)
ТекДанные = ЭлементыФормы.Таблица.ТекущиеДанные;

для каждого ТекДанные из таблица цикл

Если формат(Текданные.дата_приемки, "ДЛФ=Д") > Формат(ПредДата, "ДЛФ=Д") тогда

Док = Документы.Выдача_СИ.СоздатьДокумент();
        Док.Дата = текущаяДата();
Стр = док.приборы.Добавить();

для каждого стр из док.Приборы цикл
        стр.Тип_СИ = ТекДанные.Тип_СИ;
        Стр.Заводской_Номер = ТекДанные.Номер_прибора;

        конеццикла;
         док.Записать();
        конецЕсли;
 ПредДата = ТекДанные.дата_приемки;
 конецЦикла;


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

Задача такая создавать документ и в него записывать все строки, у которых дата одна и также(т.е в табличное поле документа несколько строк записывается), для другой даты создавать следующий документ.Предположение напрочь не работает, вернее документы то создаются, но не одним документом, а несколькими. Может взглядом скажите где не так?

Оффлайн LexaK

  • *****
  • Сообщений: 1084
  • РЕПУТАЦИЯ: 284
  • КПД: 26%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
так совсем по другому выглядит ваша задача, вот один из путей ее решения
1.отсортируйте исходную таблицу с данными по колонке дата - Дата_Приемки
2.при переборе в цикле проверяете смену даты, если дата изменилась, записываете/создаете документа
вот небольшой пример кода, который еще надо доработать. надеюсь что справитесь
Процедура тестСоздатьДокумент(Кнопка)

лкТекДата = 0;
лкДок = 0;
таблица.Сортировать("дата_приемки");
Для каждого лкСтр Из таблица Цикл

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

//запоминаем новую дату
лкТекДата <> НачалоДня(лкСтр.дата_приемки);

//Создаем новый документ. заполняем шапку документа
лкДок = Документы.Выдача_СИ.СоздатьДокумент();
лкДок.Дата = текущаяДата();
лкДок.Отвсетственный = ПараметрыСеанса.ТекущийПользователь; //пример
//и т.д. ...

КонецЕсли;

//заполняем табличную часть документа
лкСтрДок = лкДок.Приботы.Добавить();
лкСтрДок.Тип_СИ = лкСтр.Тип_СИ;
лкСтрДок.Заводской_Номер = лкСтр.Номер_прибора;
лкСтрДок.Количество = 1; //пример
//и т.д. ...

КонецЦикла;

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

КонецПроцедуры
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн mila1231

  • ***
  • Сообщений: 139
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-06-10
  • Сайт: 
  • Профессия: Ученик 1С
LexaK, всё получилось)) спасибо))


Теги:
 

Поле не найдено"ЗаказПокупателя.Услуги.Ссылка"<<?>>ЗаказПокупателя.Услуги.Ссылка

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

Ответов: 6
Просмотров: 5234
Последний ответ 05 Дек 2013, 00:01
от romanprogrammist
{Форма.Форма.Форма(11)}: Поле объекта не обнаружено

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

Ответов: 2
Просмотров: 1390
Последний ответ 09 Дек 2015, 19:33
от Oks
Поле "ВаловаяПрибыль" не может быть использовано в группировке "Store" СКД

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

Ответов: 2
Просмотров: 4535
Последний ответ 10 Июл 2014, 15:16
от virtus
Не заполняется поле "Цена" при формировании документа "Пересчет товаров"

Автор InnakechaРаздел Пользователям "1С - Предприятие 8"

Ответов: 4
Просмотров: 150
Последний ответ 29 Дек 2016, 09:54
от Innakecha
Поле "Профессия"!!!

Автор MytiРаздел Предложения по работе форума

Ответов: 5
Просмотров: 4294
Последний ответ 23 Ноя 2010, 23:48
от progmikon

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
171 Сообщений
alex0402
65 Сообщений
MuI_I_Ika MuI_I_Ika
47 Сообщений
crow1983
35 Сообщений
alexandr_ll
33 Сообщений
LexaK
32 Сообщений
sertak sertak
25 Сообщений
Vzonder
22 Сообщений
BuhRust
17 Сообщений
дфтын дфтын
17 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal