Help!

1. Гость 10.10.20 14:49
У меня есть в ТБ кнопка заполнить. Когда я нажимаю на кнопку заполняет все Контрагенты в которые есть у меня в справочнике. Но если по ошибке нажму еще раз то занова заполнит эти же контрагенты по списку. Всмысле предположим что у меня в контрагентах есть 1 вид контрагента под названием ("контрагент") - когда я нажимаю на кнопку, заполнить вижу там 1-у строку с одним наименованием. "контрагент" а если нажму еще раз на эту кнопку то уже один и тот же контрагент добавляется во второй строке. Как сделать так что бы даже если 100 раз нажать на кнопку такого не было ? Заранее спасибо )
По теме из базы знаний
Вознаграждение за ответ
Для передачи вознаграждения воспользуйтесь кнопкой "Отдать $m" в сообщении. Для возврата вознаграждения, отдайте его самому себе. Можно вознаграждение разделить между несколькими участниками. Не забывайте нажимать кнопку "Это решение", это повысит вашу репутацию.
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user856012 13 10.10.20 15:30 Сейчас в теме
(1)
Как сделать так что бы даже если 100 раз нажать на кнопку такого не было ?

Как минимум 2 способа:
1. Полностью очищать уже заполненный список перед новым заполнением.
2. В процедуре заполнения перед добавлением нового контрагента проверять - а нет ли уже такого в списке? Если есть, то пропускать и переходить к следующему.

Выбор способа зависит от деталей поставленной задачи (что именно нужно потом делать со списком), в обоих случаях необходимо владеть хотя бы азами программирования 1С.

P.S. Настоящий программист не кричит "Help!" даже если тонет, он кричит: "F1! F1!" :)
Это решение Отдать $m
vadim.semyonov.rzn; Aleksandr_prof; +2 Ответить
5. user1087014 10.10.20 16:16 Сейчас в теме
(2)Нужен конкретный код )) Сейчас у меня код стоит такой
Процедура Кнопка1Нажатие(Элемент)
Doldur =Справочники.Контрагенты.Выбрать();
Пока Doldur.Следующий() Цикл
Если Doldur.ЭтоГруппа Тогда Продолжить;
КонецЕсли;
Если Doldur.ПроцентСкидки Тогда Продолжить;
КонецЕсли;
СтрТч = Долги.Добавить();
СтрТч.Контрагент = Doldur.Ссылка;
СтрТч.МесячныйЛимит=Doldur.МесячныйЛимитГотовый;
Стртч.Вид = Перечисления.ВидыДолгов.ДолгПоставщика;
Стртч.Валюта=Константы.БазоваяВалюта.Получить();
КонецЦикла;
КонецПроцедуры
Это решение Отдать $m
6. user1087014 10.10.20 16:18 Сейчас в теме
(2)На данный момент мне более приемлимо 1-ый вариант )
Это решение Отдать $m
7. user856012 13 10.10.20 17:04 Сейчас в теме
(6)
На данный момент мне более приемлимо 1-ый вариант
Тогда задача должна решаться вставкой одной строчки кода:
Процедура Кнопка1Нажатие(Элемент)

Долги.Очистить();
 
Doldur =Справочники.Контрагенты.Выбрать();


Если, конечно, вы работаете с табличной частью документа.
Это решение Отдать $m
8. user1087014 10.10.20 17:36 Сейчас в теме
(7) Вот видишь все так просто а ведь, в деле не так показалось мне)) Спасибо за помощь )
Это решение Отдать $m
10. work.sable 26 12.10.20 02:59 Сейчас в теме
(8) Отметь его ответ как лучший.
Это решение Отдать $m
3. user1464234 10.10.20 15:37 Сейчас в теме
3.способ - перенос из одного списка в другой.
Это решение Отдать $m
4. user1087014 10.10.20 16:15 Сейчас в теме
Ну а насчет настоящего програмиста, я все еще учусь )
Это решение Отдать $m
9. vavo_2009 11.10.20 10:31 Сейчас в теме
очищать список перед нажатием самый приемлемый вариант
Это решение Отдать $m
11. user856012 13 12.10.20 13:18 Сейчас в теме
(9)
очищать список перед нажатием самый приемлемый вариант
Это зависит от того, что дальше делать с этим списком? Если ничего (но тогда непонятно, зачем он нужен?), то лучше и проще его очищать, как и захотел автор.

А если с этим списком в табличной части надо дальше работать - вводить какие-то данные (в реквизиты), удалять отдельные строки и т.д., а потом понадобится восстановить исходный перечень, но при этом не потерять ранее введенные данные, то в этом случае очистка - не самый лучший выход.

P.S. Гораздо интереснее, что теперь будет с вознаграждением - выдать его может только автор ветки, а он почему-то прописался как "Гость", так что сможет ли user1087014 отдать его кому-то или хотя бы вернуть себе - вопрос! ;)
Это решение Отдать $m
12. user1087014 13.10.20 21:13 Сейчас в теме
Спасибо дорогие друзья, Уже нашел вариант ) 2 Кнопки, один заполняет контрагенты. Когда нажимаешь на кнопку, выходит вопрос заполнить да или нет. И другой Очистить ТБ- Вопрос выходит да или нет ) Вполне устроило )
Это решение Отдать $m
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот