1.
Гость
10.10.20 14:49
У меня есть в ТБ кнопка заполнить. Когда я нажимаю на кнопку заполняет все Контрагенты в которые есть у меня в справочнике. Но если по ошибке нажму еще раз то занова заполнит эти же контрагенты по списку. Всмысле предположим что у меня в контрагентах есть 1 вид контрагента под названием ("контрагент") - когда я нажимаю на кнопку, заполнить вижу там 1-у строку с одним наименованием. "контрагент" а если нажму еще раз на эту кнопку то уже один и тот же контрагент добавляется во второй строке. Как сделать так что бы даже если 100 раз нажать на кнопку такого не было ? Заранее спасибо )
Отдать $m
По теме из базы знаний
- Помощь по релизу 605 в HTML формате и стандартном Win Help
- Help-Desk на 1С 8.2
- Чтение Google Spreadsheet из 1C на примере простой службы Help Desk
- Fast help. Универсальные функции для регистрации внешних отчетов/обработок в 1С 8 на управляемых формах. Использование Синонима отчета/обработки при выполнении кода &НаКлиенте
- Help Desk внутри организации: наш опыт внедрения 1С-Коннект
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Как минимум 2 способа:
1. Полностью очищать уже заполненный список перед новым заполнением.
2. В процедуре заполнения перед добавлением нового контрагента проверять - а нет ли уже такого в списке? Если есть, то пропускать и переходить к следующему.
Выбор способа зависит от деталей поставленной задачи (что именно нужно потом делать со списком), в обоих случаях необходимо владеть хотя бы азами программирования 1С.
P.S. Настоящий программист не кричит "Help!" даже если тонет, он кричит: "F1! F1!" :)
Как сделать так что бы даже если 100 раз нажать на кнопку такого не было ?
Как минимум 2 способа:
1. Полностью очищать уже заполненный список перед новым заполнением.
2. В процедуре заполнения перед добавлением нового контрагента проверять - а нет ли уже такого в списке? Если есть, то пропускать и переходить к следующему.
Выбор способа зависит от деталей поставленной задачи (что именно нужно потом делать со списком), в обоих случаях необходимо владеть хотя бы азами программирования 1С.
P.S. Настоящий программист не кричит "Help!" даже если тонет, он кричит: "F1! F1!" :)
(2)Нужен конкретный код )) Сейчас у меня код стоит такой
Процедура Кнопка1Нажатие(Элемент)
Doldur =Справочники.Контрагенты.Выбрать();
Пока Doldur.Следующий() Цикл
Если Doldur.ЭтоГруппа Тогда Продолжить;
КонецЕсли;
Если Doldur.ПроцентСкидки Тогда Продолжить;
КонецЕсли;
СтрТч = Долги.Добавить();
СтрТч.Контрагент = Doldur.Ссылка;
СтрТч.МесячныйЛимит=Doldur.МесячныйЛимитГотовый;
Стртч.Вид = Перечисления.ВидыДолгов.ДолгПоставщика;
Стртч.Валюта=Константы.БазоваяВалюта.Получить();
КонецЦикла;
КонецПроцедуры
Процедура Кнопка1Нажатие(Элемент)
Doldur =Справочники.Контрагенты.Выбрать();
Пока Doldur.Следующий() Цикл
Если Doldur.ЭтоГруппа Тогда Продолжить;
КонецЕсли;
Если Doldur.ПроцентСкидки Тогда Продолжить;
КонецЕсли;
СтрТч = Долги.Добавить();
СтрТч.Контрагент = Doldur.Ссылка;
СтрТч.МесячныйЛимит=Doldur.МесячныйЛимитГотовый;
Стртч.Вид = Перечисления.ВидыДолгов.ДолгПоставщика;
Стртч.Валюта=Константы.БазоваяВалюта.Получить();
КонецЦикла;
КонецПроцедуры
(6)
Если, конечно, вы работаете с табличной частью документа.
На данный момент мне более приемлимо 1-ый вариант
Тогда задача должна решаться вставкой одной строчки кода:
Процедура Кнопка1Нажатие(Элемент)
Долги.Очистить();
Doldur =Справочники.Контрагенты.Выбрать();
Если, конечно, вы работаете с табличной частью документа.
(9)
А если с этим списком в табличной части надо дальше работать - вводить какие-то данные (в реквизиты), удалять отдельные строки и т.д., а потом понадобится восстановить исходный перечень, но при этом не потерять ранее введенные данные, то в этом случае очистка - не самый лучший выход.
P.S. Гораздо интереснее, что теперь будет с вознаграждением - выдать его может только автор ветки, а он почему-то прописался как "Гость", так что сможет ли user1087014 отдать его кому-то или хотя бы вернуть себе - вопрос! ;)
очищать список перед нажатием самый приемлемый вариант
Это зависит от того, что дальше делать с этим списком? Если ничего (но тогда непонятно, зачем он нужен?), то лучше и проще его очищать, как и захотел автор.
А если с этим списком в табличной части надо дальше работать - вводить какие-то данные (в реквизиты), удалять отдельные строки и т.д., а потом понадобится восстановить исходный перечень, но при этом не потерять ранее введенные данные, то в этом случае очистка - не самый лучший выход.
P.S. Гораздо интереснее, что теперь будет с вознаграждением - выдать его может только автор ветки, а он почему-то прописался как "Гость", так что сможет ли user1087014 отдать его кому-то или хотя бы вернуть себе - вопрос! ;)
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот