Здравствуйте уважаемый посетитель. К сожалению вы не были распознаны форумом как зарегистрированный пользователь. Для полноценного использования возможностей нашего форума вам необходимо зарегистрироваться. Если вы уже зарегистрированы на форуме, то вам необходимо пройти авторизацию, используя Ваш логин и пароль.
Всім добрий день, пишу розширення для БАС МБ щоб при записі штрихкода який є вже в іншій номенклатурі - було підтвердження, щоб було менше помилок. Написав мінімальне розширення, але справа в тому що вікно підтвердження зацикліється і запис не відбувається. У чому може бути справа і як це мені виправити. Я поки початковий програміст 1с.
Моє розширення у модулі форми регіства відемостей ШтрихкодыНоменклатуры: Код
&НаСервере Функция ЕстьДубликатШтрихкода(Штрихкод, Номенклатура)
Запрос = Новый Запрос( "ВЫБРАТЬ ПЕРВЫЕ 1 | Номенклатура |ИЗ РегистрСведений.ШтрихкодыНоменклатуры |ГДЕ Штрихкод = &Штрихкод | И Номенклатура <> &Номенклатура" ); Запрос.УстановитьПараметр("Штрихкод", Штрихкод); Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Результат = Запрос.Выполнить().Выбрать(); Если Результат.Следующий() Тогда Возврат "Штрихкод вже використовується для номенклатури """ + Результат.Номенклатура + """"; КонецЕсли;
Возврат "";
КонецФункции
&НаКлиенте Процедура ПродолжитьЗаписьДубля(Ответ, ДопПараметры) Экспорт Если Ответ = КодВозвратаДиалога.ОК Тогда Отказ = Ложь; ЭтаФорма.Записать(); Сообщить(" Запис виконано після підтвердження користувача"); Иначе Сообщить(" Запис скасовано користувачем"); КонецЕсли; КонецПроцедуры
Если НЕ ПустаяСтрока(ОписаниеОшибки) Тогда Отказ = Истина; ПоказатьВопрос( Новый ОписаниеОповещения("ПродолжитьЗаписьДубля", ЭтаФорма), ОписаниеОшибки + Символы.ПС + "Продовжити запис незважаючи на збіг?", РежимДиалогаВопрос.ОКОтмена ); КонецЕсли; КонецПроцедуры
// ПодключаемоеОборудование Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда Если ИмяСобытия = "ScanData" Тогда Данные = МенеджерОборудованияУНФКлиент.ПреобразоватьДанныеСоСканераВМассив(Параметр); ПолученыШтрихкоды(Данные); ИначеЕсли ИмяСобытия = "DataCollectionTerminal" Тогда ПолученыШтрихкоды(Параметр); КонецЕсли; КонецЕсли; // Конец ПодключаемоеОборудование
// Процедура обработчик команды НовыйШтрихкод. // &НаКлиенте Процедура НовыйШтрихкод(Команда)
Если Не ЗначениеЗаполнено(Запись.Номенклатура) Тогда СтрокаСообщения = НСтр("ru='Штрихкод не сгенерирован. Предварительно выберите номенклатуру.';uk='Штрихкод не згенерований. Попередньо виберіть номенклатуру.'"); ОбщегоНазначенияКлиент.СообщитьПользователю(СтрокаСообщения); Возврат КонецЕсли;
Если ИспользоватьОбменСПодключаемымОборудованиемOffline И ВесоваяНоменклатура() Тогда СформироватьШтрихкодВесовогоТовара(); Иначе Запись.Штрихкод = СформироватьШтрихкодEAN13(); КонецЕсли;
КонецПроцедуры
&НаКлиенте Процедура УдалитьЗапись(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("УдалитьЗаписьНаКлиенте", ЭтотОбъект); ПоказатьВопрос(ОписаниеОповещения, НСтр("ru = 'Удалить ""Штрихкоды номенклатуры"" ?'; uk = 'Вилучити ""Штрихкоди номенклатури"" ?'"), РежимДиалогаВопрос.ДаНет);
Автор Svetas2026 — 10.10.25, 19:42 — 21 комментариев
Добрый день, нужно автоматически добавить в BAS КУП 1С 8.3 из 1С 7.7 контактную информацию вновь созданным контрагентам и партнёрам, а так же их контактным лицам. Сами партнёры, контрагенты, контактные лица создаются. но вот контактная информация к ним не добавляется. уже использую 3 варианта одновременно, но ни один в коде не работает. Прошу помощи:
адрес_t=АдресИзСтроки(Данные[Индекс].Физ_адрес); ЕСЛИ адрес_t.Свойство("Индекс")=ИСТИНА тогда ЗаписатьАдрес(Партнер,адрес_t.Город,адрес_t.Улица,адрес_t.Дом,адрес_t.Офис,адрес_t.Индекс); Иначе ЗаписатьАдрес(Партнер,адрес_t.Город,адрес_t.Улица,адрес_t.Дом,адрес_t.Офис,); конецесли;
В общем нужно в встроенный отчет Продажи добавить колонку остатки. Банально добавил регистр,левая связь по номенклатуре, и тут беда, ошибка. Не пойму что не так?
Автор Profi_1C77 — 08.10.25, 8:59 — 6 комментариев
Кто сталкивался с похожей задачей на BAS КУП. Нужно ограничить пользователя на получение движений по бух счетам (36 / 63 группы); Есть лив КУПе уже набор прав, или писать это самому на уровне RLS ?
День добрый может кто поможет скачать обработку интеграции 1с7.7 и вайбер вот ссылка: https://infostart.ru/1c/tools/1416729/ Или может кто знает решение?
Добрый день. Делаю запрос к регистру остатков Запасы, из регистра беру Склад, Номенклатуру и количество, а вот цену нужно получить из последнего приходного документа. Подскажите. как это реализовать на СКД?
Добрый день. есть отчет на СКД . которой берет данные из регистра ВыпусПродукцииУслуг берет продукцию, а из РегитсраБухгалтерии бер Кт обороты по 281 сч. Можно как-то выгрузить результат работы СКД в Таблицу значений? Мне потом нужно обработать результат и вывсти его в свой макет
Автор Svetas2026 — 25.09.25, 12:36 — 3 комментариев
Добрый день, перегоняю данные из 7.7 в КУП 8.3 при перегоне данные паспорта физического лица записываю в регистр Документы Физических лиц, но они почему-то не попадают, не отображаются в карточке физического лица. точно тоже происходит и с контактами физического лица, они записіваются в регистр, но не попадают в карточку, и с датой принятия и увольнения сотрудника, и с суммой аванса. В чём проблема? Код
Для Индекс = 0 По Данные.Количество() - 1 Цикл если СокрЛП(Данные[Индекс].ИНН)<>"" Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ФизическиеЛица.Ссылка КАК Ссылка |ИЗ | Справочник.ФизическиеЛица КАК ФизическиеЛица |ГДЕ | ФизическиеЛица.КодПоДРФО = &ИНН"; Запрос.УстановитьПараметр("ИНН", Данные[Индекс].ИНН); Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда Выборка = Результат.Выбрать(); Выборка.Следующий(); ФизЛицо = Выборка.Ссылка.ПолучитьОбъект(); Иначе ФизЛицо = Справочники.ФизическиеЛица.СоздатьЭлемент(); КонецЕсли; ФизЛицо.Наименование= СокрЛП(Данные[Индекс].ФИО); ФизЛицо.ФИО = СокрЛП(Данные[Индекс].ФИО); ФизЛицо.КодПоДРФО = СокрЛП(Данные[Индекс].ИНН);
НоваяЗапись.СтранаВыдачи=Справочники.СтраныМира.Украина; НоваяЗапись.КемВыдан= СокрЛП(Данные[Индекс].Кем_выдан_паспорт); НоваяЗапись.Период = ТекущаяДата(); // Для периодического регистра // Пытаемся записать Попытка НаборЗаписей.Записать(Истина); // Заменить существующие записи // Успешно записано Исключение // Здесь можно добавить логирование ошибки, если нужно // Ошибка при записи КонецПопытки;
// Получаем виды контактной информации ВидТелефона = Справочники.ВидыКонтактнойИнформации.ТелефонМобильныйФизическиеЛица; ВидАдреса = Справочники.ВидыКонтактнойИнформации.АдресМестаПроживанияФизическиеЛица; // Создаем менеджер для работы с контактной информацией МенеджерКонтактов = УправлениеКонтактнойИнформацией;
Попытка // Заполняем телефон, если передан Если ЗначениеЗаполнено(Данные[Индекс].Телефон) Тогда ЗначенияПолейТелефон = Новый Массив; ЗначенияПолейТелефон.Добавить(Новый Структура("ИмяПоля, Значение", "НомерТелефона", Данные[Индекс].Телефон)); МенеджерКонтактов.ЗаписатьКонтактнуюИнформацию( ФизЛицо.Ссылка, СокрЛП(Данные[Индекс].Телефон), // Представление ВидТелефона, Перечисления.ТипыКонтактнойИнформации.Телефон, МенеджерКонтактов.КонтактнаяИнформацияВJSON(СокрЛП(Данные[Индекс].Телефон)) ); КонецЕсли;
// Заполняем адрес, если передан Если ЗначениеЗаполнено(Данные[Индекс].Адрес_сотрудника) Тогда ЗначенияПолейАдрес = Новый Массив; ЗначенияПолейАдрес.Добавить(Новый Структура("ИмяПоля, Значение", "Представление", Данные[Индекс].Адрес_сотрудника)); МенеджерКонтактов.ЗаписатьКонтактнуюИнформацию( ФизЛицо.Ссылка, СокрЛП(Данные[Индекс].Адрес_сотрудника), // Представление ВидАдреса, Перечисления.ТипыКонтактнойИнформации.Адрес, МенеджерКонтактов.КонтактнаяИнформацияВJSON(СокрЛП(Данные[Индекс].Адрес_сотрудника)) ); КонецЕсли;
Исключение // Логирование ошибки, если нужно // Сообщить(ОписаниеОшибки()); КонецПопытки;
////============================================== Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ |Организации.Ссылка КАК Ссылка, |Организации.КодПоЕДРПОУ КАК КодПоЕДРПОУ |ИЗ |Справочник.Организации КАК Организации |ГДЕ |Организации.КодПоЕДРПОУ = &Код"; Запрос.УстановитьПараметр("Код", "34994962"); Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда Выборка = Результат.Выбрать(); Выборка.Следующий(); Организация = Выборка.Ссылка.ПолучитьОбъект(); Иначе // Сотрудник = Справочники.Сотрудники.СоздатьЭлемент(); КонецЕсли;
// Поиск сотрудника по табельному номеру Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Сотрудники.Ссылка КАК Ссылка |ИЗ | Справочник.Сотрудники КАК Сотрудники |ГДЕ | Сотрудники.ФизическоеЛицо = &ФизическоеЛицо"; Запрос.УстановитьПараметр("ФизическоеЛицо", ФизЛицо.Ссылка); Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда Выборка = Результат.Выбрать(); Выборка.Следующий(); Сотрудник = Выборка.Ссылка.ПолучитьОбъект(); Иначе Сотрудник = Справочники.Сотрудники.СоздатьЭлемент(); КонецЕсли;
Всем привет! Платформа 8.3.24 Подскажите, пожалуйста, как программно изменить рабочую дату для ввода документов "задним" числом. В конфигураторе сделал обработку УстановкаРабочейДаты, в модуле формы процедура:
Есть Табличная часть "ААА" на управляемой форме. В ней есть колонка "ХХХ" - тип "СправочникСсылка.ССС"
В заполненной табличной части есть кроме ссылок и "пустые ссылки"
Программно устанавливается отбор - всё отрабатывает отлично.
КритерийОтбора = Новый ФиксированнаяСтруктура("ХХХ", Отчет.ОтборССС);
Элементы.ААА.ОтборСтрок = КритерийОтбора;
При попытке программно отключить отбор (испробовано 3 варианта)
// ВАРИАНТ 1: КритерийОтбора = Новый ФиксированнаяСтруктура("ХХХ", НЕОПРЕДЕЛЕНО); // ВАРИАНТ 2: КритерийОтбора = Новый ФиксированнаяСтруктура(); // ВАРИАНТ 3: КритерийОтбора = НЕОПРЕДЕЛЕНО;
Элементы.ААА.ОтборСтрок = КритерийОтбора;
Отображаются НЕ ВСЕ строки а только с "пустой ссылкой"
ВОПРОС: КАК ОТМЕНИТЬ ОТБОР СТРОК ???
AnryMc @ Сегодня, 10:14
,
Вопрос снят - ВСЁ НОРМАЛЬНО Ещё в одном месте вызывался отборСтрок
З.Ы. "Ну кто так строит?" Пробираюсь через дебри чужого кода
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!