|
|
1 | |
Простое Условие Чтобы Не Редактировать Поля Уже Существующей Записи25.01.2012, 10:55. Показов 16531. Ответов 11
Метки нет (Все метки)
Доброго времени суток всем. Сразу извиняюсь за, возможно, ламерские вопросы, знакомство с 1С у меня только началось.
Необходимо загрузить номенклотуру в справочник 1С. Первичную загрузку я сделаю, это не проблема. Не совсем устраивает этот способ, если необходимо обновить эти данные. Вот, скажем, расширили поставщики свой номенклотурный список. Действуя средствами, рекомендованными здесь: http://www.online-ufa.ru/conte... el_part_2/ я буду каждый раз редактировать уже существующие данные и добавлять новые. Но мне не нужно редактирование. Мне нужно только добавление записей, по которым не найден существующий артикул. Я хочу иметь возможность изменять вручную, например, Наименование товара и сохранить эти изменения в дальнейшем при очередном обновлении справочника номенклотуры. Насколько я понял, необходимо в обработчике -> вкладка "Настройка" в столбце "Выражение" ввести код, который запретит редактирование данного поля если артикул найден. Короче мне нужен этот код. |
25.01.2012, 10:55 | |
Ответы с готовыми решениями:
11
Простое условие чтобы не редактировать поля уже существующей записи Обновление в базе уже существующей записи Ограничение на ввод дублера (уже существующей) записи в ПОЛЕ Добавление почты скриптом к уже существующей учетной записи в AD |
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
|
|
25.01.2012, 13:36 | 2 |
Допишите в код загрузки, что перед тем как добавить новую номенклатуру сначала попытаться ее найти по коду. Нашлась, пропустить, не нашлась тогда добавить.
0
|
|
|
25.01.2012, 17:58 | 3 |
Спасибо что ответили, но код мне нужен. Я в синтаксисе языка ни бум-бум.
|
0 / 0 / 0
Регистрация: 03.06.2009
Сообщений: 116
|
|
26.01.2012, 05:28 | 4 |
Ну Вы бы хоть для приличия какие то попытки предприняли.=) А вообще все туманно как в далеком космосе.
А вообще насколько я понял, надо добавить где то в тело цикла проверку на имеющиеся номера. =) Синтакс-Помощник или Справка=)
0
|
|
|
26.01.2012, 11:21 | 5 |
Так Я предупреждал.
У меня прайс, который необходимо загрузить в 1С. Лишнее из прайса удалено, остались поля Артикул, Полное наименование и Родитель. С помощью стандартного загрузчика "ЗагрузкаДанныхИзТабличногоДокумента" я загружаю эту номенклотуру в свою базу. Далее заполняю поля «Единица для отчетов» и «Единица хранения остатков». Код для этого взят из приведенной в моем первом сообщении ссылки. Вот он: СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", ТекущиеДанные["Артикул"]); БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(796); ТекСпр=Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("ЕдиницаПоКлассификатору",Б азоваяЕдиницаИзмерения,,СсылкаНоменклатуры); Если ТекСпр.Пустая() Тогда НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); НайденнаяЕдиницаОбъект.Наименование = СокрЛП(БазоваяЕдиницаИзмерения); НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения; НайденнаяЕдиницаОбъект.Коэффициент = 1; НайденнаяЕдиницаОбъект.Владелец = СсылкаНоменклатуры; Попытка НайденнаяЕдиницаОбъект.Записать(); Результат = НайденнаяЕдиницаОбъект.Ссылка; Исключение Сообщить("Не удалось записать"); КонецПопытки; Иначе Результат =ТекСпр.Ссылка; КонецЕсли; Смысл его мне понятен не совсем, но в целом он означает, что мы получаем БазоваяЕдиницаИзмерения из Справочники.КлассификаторЕдиницИзмерения. Она там идет под кодом 796. Поля «Единица для отчетов» и «Единица хранения остатков» какие-то не текстовые, поэтому просто поставить там "шт" не получится. Надо заполнять их полностью, со всякими данными, которые мы формируем из екселевского документа и справочников 1С. Код этот навел меня на мысль, что можно как-то просто отменить изменения в "Полном наименовании" при обновлении номенклотуры. Расписываю зачем мне это надо: Мы продаем запчасти, у которых довольно значительные списки совместимостей с разными моделями устройств. Этот список совместимости мы постоянно редактируем и дополняем. Данные такого редактирования мне хотелось бы сохранить, но если не запретить редактирование существующего "Полного наименования" при автоматической загрузке номенклотуры, то изменения будут утеряны. Вот этот код мне и нужен. |
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
|
|
26.01.2012, 11:57 | 6 |
Сообщение от Алексей1975
0
|
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
|
|
26.01.2012, 12:32 | 7 |
Алексей1975, Дайнеко прав. Мы при всем желании вам не сможем объяснить как правильно сделать. Даже если очень постараемся, можем получить совершенно обратный эффект. Вы разочаруетесь и решите, что тут собрались одни чайники и ничего не умеют.
0
|
|
|
26.01.2012, 12:38 | 8 |
Я в 10-летнем прошлом программист. Будущая работа будет тесно связана с 1С. Думаю чтобы задавать сложные вопросы и разобраться со сложными ответами этого достаточно.
Ребят, ну скажите же код. Ну не рационально мне изучать язык программирования чтобы 3 строчки написать. А насчет данного сообщения: "Алексей1975, Дайнеко прав. Мы при всем желании вам не сможем объяснить как правильно сделать. Даже если очень постараемся, можем получить совершенно обратный эффект. Вы разочаруетесь и решите, что тут собрались одни чайники и ничего не умеют." Я буду благодарен за любую помощь. И я не разочаруюсь. Добавлено: Кстати знакомый предприниматель решил эту проблему на уровне екселя. Он из 1С формирует прайс в екселе, потом во втором листе вставляет прайс поставщиков с обновленной(дополненной) номенклотурой, и средствами екселя сравнивает, присутствует-ли артикул в старом прайсе или он новый. Если присутствует, то в дополнительном поле рисуется какая-нибудь фигня. Далее по этой фигне делается сортировка. Тем самым вычленяются новые позиции. И эти новые позиции стандартным загрузчиком вгоняются в базу 1С |
|
|
29.01.2012, 09:09 | 9 |
;)
|
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
|
|
29.01.2012, 15:27 | 10 |
Да, да. Жизнь штука сложная.
0
|
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
|
|
29.01.2012, 15:34 | 11 |
Там надо отказаться от загрузки строки. Т.е. тут еще зависит от того, как обработка сделана.
Можно попробовать оператор "Продолжить". Спр= Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Артикул); Если Спр.Пустая() Тогда Продолжить; КонецЕсли;
0
|
|
|
29.01.2012, 16:27 | 12 |
Спасибо большое! Попробую - отпишусь!
|
29.01.2012, 16:27 | |
29.01.2012, 16:27 | |
Помогаю со студенческими работами здесь
12
Запрет дублирования уже существующей записи в таблице по "поле1" вводимым из формы? Организовать проверку на наличие уже существующей записи в таблице по "поле1", "поле2" вводимым из формы Доступ к уже существующей сети Сетевое использование уже существующей БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |