Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/40: Рейтинг темы: голосов - 40, средняя оценка - 4.63
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
1
1C 8.x

Проверить на новую строку в табличном поле

30.10.2015, 16:18. Показов 8231. Ответов 28
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите как проверить на нового пользователя. Есть документ, в нем табличное поле ТП, если я добавляю нового пользователя в ТП и сохраняю документ ему тправляется сообщение, но при этом ранее сообщение не должно отправляться к ранее созданным пользователям.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.10.2015, 16:18
Ответы с готовыми решениями:

Как программно передвинуть курсор в табличном поле на следующую строку
Доброго всем времени суток!! 8.2 1. создал обычный документ-список "Талоны" с несколькими...

Разбить поле и создать новую строку по условию
ДОброго всем времени суток! Хочу реализовать следующее: 1. имеем таблицу с полями Field1, Field2,...

Как в текстовом поле формы добавить новую строку?
Код ' Добавить строку Private Sub AddRow_btn_Click() ' Me.Поле0 = "Новая Строка " &...

Поле с текстом в свободнй форме, переход через enter на новую строку
Добрый день. Необходимо поле типа "Замечания", куда в свободной форме может вводиться все, что...

28
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,669
Записей в блоге: 1
30.10.2015, 16:47 2
Добавить какой нибудь флаг
0
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
31.10.2015, 13:34  [ТС] 3
Dethmontt, можно на примере
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,669
Записей в блоге: 1
31.10.2015, 23:19 4
Можно конечно и на примере:
1C
1
Если Флаг тогда
0
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
02.11.2015, 09:04  [ТС] 5
Dethmontt, это понятно, вы имеете ввиду когда добавил новую строку надо поставить галочку если хочу отправить? хотелось бы автоматом чтобы отсылала
0
Шизофреник
360 / 362 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
02.11.2015, 09:25 6
Цитата Сообщение от Ermak27 Посмотреть сообщение
Есть документ, в нем табличное поле ТП
Табличное поле может быть на форме, а не в документе. Если имеется в виду табличная часть(ТЧ), как вариант:
в предопределенной процедуре модуля объекта "ПередЗаписью" сравнивай записываемую с записанной ТЧ
ЭтотОбъект.ТвояТЧ И ЭтотОбъект.Ссылка.ТвояТЧ
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,669
Записей в блоге: 1
02.11.2015, 10:17 7
А если местами строки в таблице поменял?
0
Шизофреник
360 / 362 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
02.11.2015, 10:30 8
Цитата Сообщение от Ermak27 Посмотреть сообщение
ранее сообщение не должно отправляться к ранее созданным пользователям.
как я понял - дубляжи из старой таблицы откидывать надо

Добавлено через 54 секунды
тупо новые строки только обрабатывать, которых нет в сохраненной ТЧ
0
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
02.11.2015, 11:14  [ТС] 9
wladimir_ui, отправляет без проверки, почему? В отладчике показывает что не должно отправлять а все равно отправляет

1C
1
2
3
Если ЭтотОбъект.ТабОтветственных <> ЭтотОбъект.Ссылка.ТабОтветственных Тогда
         ОтправитьНаПочту();
    КонецЕсли;
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,669
Записей в блоге: 1
02.11.2015, 12:01 10
Ermak27, бы бы еще сравнил

1C
1
2
Если База1 <> База2 тогда
    //Разные базы 1С должны быть РАВНЫ, но почему то НЕ РАВНЫ ??? Почему?
Добавлено через 2 минуты
1C
1
2
3
4
5
6
7
8
9
Если ЗначениеЗаполнено(Ссылка) Тогда
    Для каждого Стр Из ТабОтветственных Цикл
        Если Ссылка.ТабОтветственных.Найти(Стр.ИскомаяКолонка) = неопределено Тогда
             ОтправитьНаПочту();
        Конецесли;
    КонецЦикла;
Иначе
     ОтправитьНаПочту();
Конецесли;
1
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
02.11.2015, 12:09  [ТС] 11
Dethmontt, Все равно посылает всем на почту , а должен только новому пользователю
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,669
Записей в блоге: 1
02.11.2015, 14:03 12
Цитата Сообщение от Dethmontt Посмотреть сообщение
ОтправитьНаПочту();
Ну так исправь эту функцию, что бы посылал как надо!!!
0
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
02.11.2015, 14:37  [ТС] 13
Dethmontt, я имею ввиду что посылает ко всем пользователям которые в ТабОтветственных, а не только к новому
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,669
Записей в блоге: 1
02.11.2015, 14:46 14
Цитата Сообщение от Ermak27 Посмотреть сообщение
Dethmontt, я имею ввиду что посылает ко всем пользователям которые в ТабОтветственных, а не только к новому
Как же тяжело с вами....


Ermak27, В приведенном МНОЙ ВЫШЕ КОДЕ, ВООБЩЕ НЕТ ни СЛОВА ПРО ОТПРАВКУ чего либо, КУДА либо

Добавлено через 47 секунд
Приведенный код позволяет НАЙТИ новые записи в таблице и ВСЕ!!!!

Добавлено через 24 секунды
Ermak27, КАК этим пользоваться РЕШАТЬ ВАМ!
0
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
02.11.2015, 16:14  [ТС] 15
Dethmontt, Разобрался спасибо
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,669
Записей в блоге: 1
02.11.2015, 16:20 16
Ermak27, Молодчик!!!
0
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
02.11.2015, 17:23  [ТС] 17
Dethmontt, Можете подсказать, вот так я сравниваю реквизит Статус
1C
1
Если Статус <> Ссылка.Статус Тогда
А как мне сравнить реквизит статус в Табличной части?

Добавлено через 4 минуты
Dethmontt, Почему то сравнение не работает которое делаю я, не могу понять почему
1C
1
2
3
4
5
        Для каждого Стр Из ТабОтветственных Цикл
            Если Стр.Статус <> Ссылка.ТабОтветственных.Найти(Стр.Статус) Тогда
                Сообщить(Стр.Статус);
            Конецесли;
        КонецЦикла;
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,669
Записей в блоге: 1
02.11.2015, 17:42 18
Искать то нужно не по статусу!!!!!

1C
1
2
3
4
5
6
Для каждого Стр Из ТабОтветственных Цикл
            НайденныйСотрудник = Ссылка.ТабОтветственных.Найти(Стр.Сотрудник);
            Если НайденныйСотрудник <> Неопределено и Стр.Статус <> НайденныйСотрудник.Статус Тогда
                Сообщить(Стр.Статус);
            Конецесли;
        КонецЦикла;
Добавлено через 5 минут
Программирование

Как и в любой деятельности, программист вкладывает свои знания, опыт, а хороший программист и душу в создаваемую программу. Каждый индивидуум, приобретя какой-то предыдущий опыт, вкладывает его в создаваемые им вещи. И программист не исключение. В программе воплощается его миропонимание и мироощущение. Компьютер становится как бы продолжением человеческого разума. Действуя по заложенной человеком программе компьютер “говорит” вложенными в него человеком словами и на определенные ситуации отвечает так, как ответил бы человек, его программировавший. Написание программы чем-то сродни воспитанию ребенка. Только воспитание проходит всю жизнь, а программирование все-таки имеет ограниченный срок. Также как маленькому ребенку программист объясняет, что компьютер должен делать в той или иной ситуации.
Сергей Трофимов(с)

Добавлено через 2 минуты

Не по теме:

И не нужно заблуждаться - "это она почему-то не работает", "это она почему-то не так делает" - Это она нужно заменить на "Это ВЫ(Я)"

0
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
02.11.2015, 17:56  [ТС] 19
Dethmontt, Я разобрался

Добавлено через 12 минут
Dethmontt, Вот разобрался, но при тестировании влезла ошибка, если добавляю более двух строчек то выдает ошибку запись существует, я так понимаю из за первого цикла Для из Цикл, как можно решить эту проблему?
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Для каждого Стр из ТабОтветственных Цикл
    Если Статус <> Ссылка.Статус или Ссылка.ТабОтветственных.Найти(Стр.ФИО)=Неопределено или Ссылка.ТабОтветственных.Найти(Стр.Статус)=Неопределено Тогда
        Движение = РегистрыСведений.СтатусЗаявокЕдиноеОкно.СоздатьНаборЗаписей();
        Движение.Отбор.Регистратор.Установить(Ссылка);
        Движение.Прочитать();
        ДвижениеО = РегистрыСведений.СтатусОтветственных.СоздатьНаборЗаписей();
        ДвижениеО.Отбор.Регистратор.Установить(Ссылка);
        ДвижениеО.Прочитать();    
        НоваяЗапись = Движение.Добавить();
        НоваяЗапись.Период = Дата; 
        НоваяЗапись.ЛицевойСчет = ЛицевойСчет;
        НоваяЗапись.ТипЗаявки = ТипЗаявки;
        НоваяЗапись.Причина = Причина;
        НоваяЗапись.Статус = Статус;
        НоваяЗапись.ДатаСтатуса = ТекущаяДата();
        Движение.Записать();
        Для Каждого Строка Из ТабОтветственных Цикл
            НоваяЗаписьО = ДвижениеО.Добавить();
            НоваяЗаписьО.Период = Дата;
            НоваяЗаписьО.ДатаСтатуса = ТекущаяДата();
            НоваяЗаписьО.ЛицевойСчет = ЛицевойСчет;
            НоваяЗаписьО.ФИО = Строка.ФИО; 
            НоваяЗаписьО.Статус = Строка.Статус;
            НоваяЗаписьО.Должность = Строка.Должность;          
            ДвижениеО.Записать();
        КонецЦикла;
    КонецЕсли;
    КонецЦикла;
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,669
Записей в блоге: 1
02.11.2015, 18:10 20
Цитата Сообщение от Ermak27 Посмотреть сообщение
Если Статус <> Ссылка.Статус или Ссылка.ТабОтветственных.Найти(Стр.ФИО)=Неопределено или Ссылка.ТабОтветственных.Найти(Стр.Статус)=Неопределено Тогда
Что за бред... =))) Ты можешь своими словами описать каждое из условий?

Добавлено через 1 минуту
Цитата Сообщение от Ermak27 Посмотреть сообщение
если добавляю более двух строчек то выдает ошибку запись существует
Проверяй свою структуру регистров (ошибка говорит что ты добавляешь в одну таблицу две одинаковые записи)

Добавлено через 1 минуту
Ermak27, брррр....

Вообще не хочу на этот код СМОТРЕТЬ.

Удали все и перепиши заново с учетом тех знаний которые ты уже получил!!!

Добавлено через 2 минуты

Не по теме:

А я пока домой пошел (рабочий день закончился...)

Если что буду после 00:00 МСК - и готов посмотреть и обсудить с тобой новую ВЕРСИЮ твоего творения!

0
02.11.2015, 18:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2015, 18:10
Помогаю со студенческими работами здесь

Новую строку, сформированную из текста в поле inputText и сдвига inputShift вывести в editResult
Всем привет, начал делать приложение и столкнулся с проблемой краша. Это первое приложение, прошу...

Как в отчете в элементе "Поле" указать в формуле новую строку (типа vbNewLine)?
Есть отчет. Есть элемент Поле с формулой: =&quot;Выписан: &quot; &amp; vbNewLine &amp; Date() Так вот как сделать,...

Работа в табличном поле
В форме по мимо реквизитов добавлена табличное поле с колонкой улицы, нужно по каждой улице...

Изменение строки в табличном поле
Добрый день! Подскажите, пожалуйста, как изменить данные в строке табличного поля на форме?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru