Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Войти | Зарегистрироваться )




Свернуть

> Добро пожаловать на наш форум

Здравствуйте уважаемый посетитель. К сожалению вы не были распознаны форумом как зарегистрированный пользователь. Для полноценного использования возможностей нашего форума вам необходимо зарегистрироваться. Если вы уже зарегистрированы на форуме, то вам необходимо пройти авторизацию, используя Ваш логин и пароль.

Логин:   
Пароль:
 

Форум:

Новые темы (за 20 дней):

Последние сообщения:

Наши сервисы:

Дополнительно:

Новости для бухгалтера:

 
Обробка Bank Data Сonverter [раздел Программирование в 1С Предприятие 8.3]
Автор alexscu11 — 14.10.25, 15:33 — 4 комментариев
Шукаю обробку Bank Data Сonverter для BAS КУП 2.5, для роботи з УКРСИББАНКом та А-БАНКом. дайте посилання, якщо є. Дякую
Просмотров: 104, последний комментарий от Levis1995   
Підтвердження дубля штрихкоду у БАС МБ [раздел Программирование в 1С Предприятие 8.3]
Автор bohdan_t — 11.10.25, 13:47 — 8 комментариев
Всім добрий день, пишу розширення для БАС МБ щоб при записі штрихкода який є вже в іншій номенклатурі - було підтвердження, щоб було менше помилок. Написав мінімальне розширення, але справа в тому що вікно підтвердження зацикліється і запис не відбувається. У чому може бути справа і як це мені виправити. Я поки початковий програміст 1с.

Моє розширення у модулі форми регіства відемостей ШтрихкодыНоменклатуры:
Код
&НаСервере
Функция ЕстьДубликатШтрихкода(Штрихкод, Номенклатура)

    Запрос = Новый Запрос(
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |   Номенклатура
        |ИЗ РегистрСведений.ШтрихкодыНоменклатуры
        |ГДЕ Штрихкод = &Штрихкод
        |   И Номенклатура <> &Номенклатура"
    );
    Запрос.УстановитьПараметр("Штрихкод", Штрихкод);
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);

    Результат = Запрос.Выполнить().Выбрать();
    Если Результат.Следующий() Тогда
        Возврат "Штрихкод вже використовується для номенклатури """
            + Результат.Номенклатура + """";
    КонецЕсли;

    Возврат "";

КонецФункции


&НаКлиенте
Процедура ПродолжитьЗаписьДубля(Ответ, ДопПараметры) Экспорт
    Если Ответ = КодВозвратаДиалога.ОК Тогда
        Отказ = Ложь;
        ЭтаФорма.Записать();
        Сообщить(" Запис виконано після підтвердження користувача");
    Иначе
        Сообщить(" Запис скасовано користувачем");
    КонецЕсли;
КонецПроцедуры


&НаКлиенте
Процедура fix_ПередЗаписью(Отказ, ПараметрыЗаписи)
    ОписаниеОшибки = ЕстьДубликатШтрихкода(Запись.Штрихкод, Запись.Номенклатура);

    Если НЕ ПустаяСтрока(ОписаниеОшибки) Тогда
        Отказ = Истина;
        ПоказатьВопрос(
            Новый ОписаниеОповещения("ПродолжитьЗаписьДубля", ЭтаФорма),
            ОписаниеОшибки + Символы.ПС + "Продовжити запис незважаючи на збіг?",
            РежимДиалогаВопрос.ОКОтмена
        );
    КонецЕсли;
КонецПроцедуры


І ще скидую стандартний модуль форми:
Код
#Область ОбработчикиСобытийФормы

// Процедура - обработчик события ПриСозданииНаСервере.
//
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // ПодключаемоеОборудование
    ИспользоватьПодключаемоеОборудование = УправлениеНебольшойФирмойПовтИсп.ИспользоватьПодключаемоеОборудование();
    ИспользоватьОбменСПодключаемымОборудованиемOffline = ПолучитьФункциональнуюОпцию("ИспользоватьОбменСПодключаемымОборудованиемOffline");
    // Конец ПодключаемоеОборудование
    
    Элементы.ФормаУдалитьЗапись.Доступность = Не Параметры.Ключ.Пустой();
    
КонецПроцедуры // ПриСозданииНаСервере()

// Процедура - обработчик события ПриОткрытии.
//
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    
    // ПодключаемоеОборудование
    МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПриОткрытииФормы(Неопределено, ЭтотОбъект, "СканерШтрихкода");
    // Конец ПодключаемоеОборудование
    
КонецПроцедуры // ПриОткрытии()

// Процедура - обработчик события ПриЗакрытии.
//
&НаКлиенте
Процедура ПриЗакрытии()
    
    // ПодключаемоеОборудование
    МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПриЗакрытииФормы(Неопределено, ЭтотОбъект);
    // Конец ПодключаемоеОборудование
    
КонецПроцедуры // ПриЗакрытии()

// Процедура - обработчик события ОбработкаОповещения.
//
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    
    // ПодключаемоеОборудование
    Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда
        Если ИмяСобытия = "ScanData" Тогда
            Данные = МенеджерОборудованияУНФКлиент.ПреобразоватьДанныеСоСканераВМассив(Параметр);
            ПолученыШтрихкоды(Данные);
        ИначеЕсли ИмяСобытия = "DataCollectionTerminal" Тогда
            ПолученыШтрихкоды(Параметр);
        КонецЕсли;
    КонецЕсли;
    // Конец ПодключаемоеОборудование
    
КонецПроцедуры // ОбработкаОповещения()

// Процедура - обработчик события ОбработкаПроверкиЗаполненияНаСервере.
//
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)

    Запрос = РегистрыСведений.ШтрихкодыНоменклатуры.НовыйЗапросШтрихкоды(Запись);

    Выборка = Запрос.Выполнить().Выбрать();

    Если Выборка.Следующий() // Штрихкод уже записан в БД

        И Запись.ИсходныйКлючЗаписи.Штрихкод <> Запись.Штрихкод Тогда

        ОписаниеОшибки = НСтр("ru='Такой штрихкод уже назначен для номенклатуры %Номенклатура%';uk='Такий штрихкод вже призначений для номенклатури %Номенклатура%'");
        ОписаниеОшибки = СтрЗаменить(ОписаниеОшибки, "%Номенклатура%", """" + Выборка.НоменклатураПредставление + """"
            + ?(ЗначениеЗаполнено(Выборка.Характеристика), " " + НСтр("ru='с характеристикой';uk='з характеристикою'") + " """
            + Выборка.ХарактеристикаПредставление + """", "") + ?(ЗначениеЗаполнено(Выборка.Партия), " """ + НСтр("ru='с партией';uk='з партією'") + " " + Выборка.ПартияПредставление + """", ""));

        ОбщегоНазначения.СообщитьПользователю(ОписаниеОшибки,, "Запись.Штрихкод",, Отказ);

    КонецЕсли;

КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    ПерезаписатьЗначениеШтрихКодаВНоменклатуре = Запись.ИсходныйКлючЗаписи.Штрихкод = Запись.Номенклатура.ШтрихКод;
КонецПроцедуры

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
    
    ПараметрыОповещения = Новый Структура;
    ПараметрыОповещения.Вставить("Номенклатура", Запись.Номенклатура);
    ПараметрыОповещения.Вставить("ШтрихКод", Запись.ШтрихКод);
    ПараметрыОповещения.Вставить("ПерезаписатьЗначениеШтрихКодаВНоменклатуре", ПерезаписатьЗначениеШтрихКодаВНоменклатуре);
    ПараметрыОповещения.Вставить("ШтрихКодУдален", Ложь);
    
    Оповестить("ЗаписьШтрихКода", ПараметрыОповещения);
    
    Элементы.ФормаУдалитьЗапись.Доступность = Истина;
    
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

// Процедура обработчик команды НовыйШтрихкод.
//
&НаКлиенте
Процедура НовыйШтрихкод(Команда)
    
    Если Не ЗначениеЗаполнено(Запись.Номенклатура) Тогда
        СтрокаСообщения = НСтр("ru='Штрихкод не сгенерирован. Предварительно выберите номенклатуру.';uk='Штрихкод не згенерований. Попередньо виберіть номенклатуру.'");
        ОбщегоНазначенияКлиент.СообщитьПользователю(СтрокаСообщения);
        Возврат
    КонецЕсли;
    
    Если ИспользоватьОбменСПодключаемымОборудованиемOffline И ВесоваяНоменклатура() Тогда
        СформироватьШтрихкодВесовогоТовара();
    Иначе
        Запись.Штрихкод = СформироватьШтрихкодEAN13();
    КонецЕсли;
    
КонецПроцедуры

&НаКлиенте
Процедура УдалитьЗапись(Команда)
    
        ОписаниеОповещения = Новый ОписаниеОповещения("УдалитьЗаписьНаКлиенте", ЭтотОбъект);
        ПоказатьВопрос(ОписаниеОповещения, НСтр("ru = 'Удалить ""Штрихкоды номенклатуры"" ?'; uk = 'Вилучити ""Штрихкоди номенклатури"" ?'"), РежимДиалогаВопрос.ДаНет);

КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

&НаКлиенте
Процедура УдалитьЗаписьНаКлиенте(Ответ, ДополнительныеПараметры) Экспорт

    Если Ответ = КодВозвратаДиалога.Нет Тогда
        Возврат;
    КонецЕсли;
    
    УдалитьЗаписьНаСервере();
    
    ПараметрыОповещения = Новый Структура;
    ПараметрыОповещения.Вставить("Номенклатура", Запись.Номенклатура);
    ПараметрыОповещения.Вставить("ШтрихКод", Запись.ШтрихКод);
    ПараметрыОповещения.Вставить("ПерезаписатьЗначениеШтрихКодаВНоменклатуре", Ложь);
    ПараметрыОповещения.Вставить("ШтрихКодУдален", Истина);
    
    Оповестить("ЗаписьШтрихКода", ПараметрыОповещения);

    
    ЭтаФорма.Закрыть();
    
КонецПроцедуры

&НаСервере
Процедура УдалитьЗаписьНаСервере()

    НаборЗаписей = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьНаборЗаписей();
    
    НаборЗаписей.Отбор.Номенклатура.Установить(Запись.Номенклатура);
    НаборЗаписей.Отбор.Штрихкод.Установить(Запись.Штрихкод);
    НаборЗаписей.Отбор.Партия.Установить(Запись.Партия);
    НаборЗаписей.Отбор.ЕдиницаИзмерения.Установить(Запись.ЕдиницаИзмерения);
    НаборЗаписей.Отбор.Характеристика.Установить(Запись.Характеристика);
    НаборЗаписей.Записать();
    
КонецПроцедуры

// ПодключаемоеОборудование
&НаКлиенте
Функция ПолученыШтрихкоды(ДанныеШтрихкодов)
    
    Модифицированность = Истина;
    
    Если ДанныеШтрихкодов.Количество() > 0 Тогда
        Запись.Штрихкод = ДанныеШтрихкодов[ДанныеШтрихкодов.Количество() - 1].Штрихкод;
    КонецЕсли;
    
    Возврат Истина;
    
КонецФункции // ПолученыШтрихкоды()
// Конец ПодключаемоеОборудование

&НаСервере
Функция ВесоваяНоменклатура()
    Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Запись.Номенклатура, "Весовой");
КонецФункции

&НаКлиенте
Процедура СформироватьШтрихкодВесовогоТовара()
    
    ПрефиксВесовогоТовара = 1;
    
    ОбработчикОповещения = Новый ОписаниеОповещения(
    "ПродолжитьФормированиеШтрихкодаВесовогоТовара",
    ЭтотОбъект);
    
    ПоказатьВводЧисла(
    ОбработчикОповещения,
    ПрефиксВесовогоТовара,
    НСтр("ru='Введите префикс весового товара или нажмите кнопку Отмена';uk='Введіть префікс вагового товару або натисніть кнопку Відмінити'"), 1, 0);
    
КонецПроцедуры

&НаКлиенте
Процедура ПродолжитьФормированиеШтрихкодаВесовогоТовара(ПрефиксВесовогоТовара, Параметры) Экспорт
    
    Если ПрефиксВесовогоТовара <> Неопределено Тогда
        Запись.Штрихкод = СформироватьШтрихкодEAN13ВесовогоТовара(Формат(ПрефиксВесовогоТовара, "ЧЦ=1; ЧН=0"));
    КонецЕсли;
    
КонецПроцедуры // НовыйШтрихкод()

&НаСервереБезКонтекста
Функция СформироватьШтрихкодEAN13ВесовогоТовара(Знач ПрефиксВесовогоТовара)
    
    Возврат РегистрыСведений.ШтрихкодыНоменклатуры.СформироватьШтрихкодВесовогоТовараEAN13(ПрефиксВесовогоТовара);
    
КонецФункции

// Формирует штрихкод EAN13.
//
&НаСервереБезКонтекста
Функция СформироватьШтрихкодEAN13()
    
    Возврат РегистрыСведений.ШтрихкодыНоменклатуры.СформироватьШтрихкодEAN13();
    
КонецФункции // СформироватьШтрихкодEAN13()

#КонецОбласти
Просмотров: 204, последний комментарий от andytg   
Добавление контактной информации Партнёров, Контрагентов [раздел Программирование в 1С Предприятие 8.3]
Автор Svetas2026 — 10.10.25, 19:42 — 21 комментариев
Добрый день,
нужно автоматически добавить в BAS КУП 1С 8.3 из 1С 7.7
контактную информацию вновь созданным контрагентам и партнёрам, а так же их контактным лицам.
Сами партнёры, контрагенты, контактные лица создаются. но вот контактная информация к ним не добавляется.
уже использую 3 варианта одновременно, но ни один в коде не работает.
Прошу помощи:

Код 1
НоваяСтрока = Партнер.КонтактнаяИнформация.Добавить(); 
НоваяСтрока.Значение = Данные[Индекс].Физ_адрес;  
НоваяСтрока.Тип=Перечисления.ТипыКонтактнойИнформации.Адрес;
НоваяСтрока.Вид=Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента;


Процедура ЗаписатьАдрес
           
Процедура ЗаписатьАдрес(Объект,город,улица,дом,оф,индекс=" ")

    АдресСтруктура = Новый Структура;
        АдресСтруктура.Вставить("Стана",  "Україна");
        АдресСтруктура.Вставить("Город",  город);
        АдресСтруктура.Вставить("Улица",  улица);
        АдресСтруктура.Вставить("Дом",  дом);
    АдресСтруктура.Вставить("Офис", оф);
    
    Если НЕ ПустаяСтрока(индекс) Тогда
        
    АдресСтруктура.Вставить("Индекс", индекс);     
        КонецЕсли;
    
        АдресXML =  УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(АдресСтруктура,"", Перечисления.ТипыКонтактнойИнформации.Адрес);
    
    АдресJSON = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(АдресXML);

    УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(Объект, АдресJSON, Справочники.ВидыКонтактнойИнформации.АдресПартнера, ТекущаяДата(), Ложь);
        
УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(Объект,АдресJSON,Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента,Перечисления.ТипыКонтактнойИнформации.Адрес,Объект.КонтактнаяИнформация.Количество()+1,ТекущаяДата());
            
КонецПроцедуры





        
   //обращение к функции
                    
                     адрес_t=АдресИзСтроки(Данные[Индекс].Физ_адрес);
            ЕСЛИ  адрес_t.Свойство("Индекс")=ИСТИНА тогда
                 ЗаписатьАдрес(Партнер,адрес_t.Город,адрес_t.Улица,адрес_t.Дом,адрес_t.Офис,адрес_t.Индекс);
                        Иначе
                ЗаписатьАдрес(Партнер,адрес_t.Город,адрес_t.Улица,адрес_t.Дом,адрес_t.Офис,);
            конецесли;


Код 2
Попытка
              // Заполняем адрес, если передан
           Если ЗначениеЗаполнено(Данные[Индекс].Физ_адрес) Тогда  

                  АдресXML     =  УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(адрес_t,"", Перечисления.ТипыКонтактнойИнформации.Адрес);
                  АдресJSON = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(АдресXML);
                  МенеджерКонтактов.ЗаписатьКонтактнуюИнформацию(
                  Партнер.Ссылка,
                   , // Представление
                  Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента,
                  Перечисления.ТипыКонтактнойИнформации.Адрес,
                  МенеджерКонтактов.КонтактнаяИнформацияВJSON(АдресJSON)
               );
           КонецЕсли;
        
                
         Исключение
        // Логирование ошибки, если нужно
        // Сообщить(ОписаниеОшибки());
         КонецПопытки;
Просмотров: 466, последний комментарий от Svetas2026   
Отчет по продажам УНФ добавить остатки [раздел Программирование в 1С Предприятие 8.3]
Автор burza — 10.10.25, 8:43 — 11 комментариев
В общем нужно в встроенный отчет Продажи добавить колонку остатки. Банально добавил регистр,левая связь по номенклатуре, и тут беда, ошибка. Не пойму что не так?

https://fex.net/ru/s/yfbstsz ну и сам отчет поглядеть.
Просмотров: 231, последний комментарий от sava1   
Блокировка получения двжений по бух счетам; [раздел Программирование в 1С Предприятие 8.3]
Автор Profi_1C77 — 08.10.25, 8:59 — 6 комментариев
Кто сталкивался с похожей задачей на BAS КУП.
Нужно ограничить пользователя на получение движений по бух счетам (36 / 63 группы);
Есть лив КУПе уже набор прав, или писать это самому на уровне RLS ?
Просмотров: 272, последний комментарий от ZhannaTuritsa   
Интеграция 1с7.7 и вайбер [раздел Программирование в 1С Предприятие 7.7]
Автор igmig65 — 07.10.25, 14:03 — 3 комментариев
День добрый может кто поможет скачать обработку интеграции 1с7.7 и вайбер
вот ссылка:
https://infostart.ru/1c/tools/1416729/
Или может кто знает решение?
Просмотров: 214, последний комментарий от volodya1122   
Последняя цена прихода [раздел Программирование в 1С Предприятие 8.3]
Автор kostya77 — 07.10.25, 7:02 — 3 комментариев
Добрый день. Делаю запрос к регистру остатков Запасы, из регистра беру Склад, Номенклатуру и количество, а вот цену нужно получить из последнего приходного документа. Подскажите. как это реализовать на СКД?
Просмотров: 182, последний комментарий от xlmel   
Печать Календаря [раздел Программирование в 1С Предприятие 8.3]
Автор burza — 30.09.25, 16:41 — 8 комментариев
Может у кого есть наброски как это реализовать. Нужна напечатать календарик на месяц в дни подставить значения из документа.
Просмотров: 355, последний комментарий от andytg   
Перехват вывода в макет СКД [раздел Система компоновки данных]
Автор kostya77 — 30.09.25, 12:49 — 4 комментариев
Добрый день. есть отчет на СКД . которой берет данные из регистра ВыпусПродукцииУслуг берет продукцию, а из РегитсраБухгалтерии бер Кт обороты по 281 сч. Можно как-то выгрузить результат работы СКД в Таблицу значений? Мне потом нужно обработать результат и вывсти его в свой макет
Просмотров: 277, последний комментарий от sava1   
Подскажите а реально ли создать такую Печатную форму [раздел Программирование в 1С Предприятие 8.3]
Автор Profi_1C77 — 29.09.25, 12:27 — 26 комментариев
Вообщем пишу обработку, в которой одна из команд идет создание печатной формы маршрутного листа :
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    РеализацияТоваровУслугТовары.Ссылка.Контрагент,
        |    РеализацияТоваровУслугТовары.Ссылка.АвтоПеревозки КАК АвтоПеревозки,
        |    РеализацияТоваровУслугТовары.Ссылка.Водитель КАК Водитель,
        |    РеализацияТоваровУслугТовары.Номенклатура,
        |    РеализацияТоваровУслугТовары.Сумма,
        |    СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество,
        |    СУММА(РеализацияТоваровУслугТовары.ЕдиницаИзмерения.Вес * РеализацияТоваровУслугТовары.Количество) КАК ОбщийВес
        |ПОМЕСТИТЬ ВТ_Продажи
        |ИЗ
        |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        |ГДЕ
        |    РеализацияТоваровУслугТовары.Ссылка.Проведен
        |    И РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ) И КОНЕЦПЕРИОДА(&Дата, ДЕНЬ)
        |
        |СГРУППИРОВАТЬ ПО
        |    РеализацияТоваровУслугТовары.Ссылка.Контрагент,
        |    РеализацияТоваровУслугТовары.Ссылка.АвтоПеревозки,
        |    РеализацияТоваровУслугТовары.Ссылка.Водитель,
        |    РеализацияТоваровУслугТовары.Номенклатура,
        |    РеализацияТоваровУслугТовары.Сумма
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    ВозвратТоваровОтПокупателяТовары.Ссылка.Контрагент,
        |    ВозвратТоваровОтПокупателяТовары.Ссылка.АвтоПеревозки,
        |    ВозвратТоваровОтПокупателяТовары.Ссылка.Водитель,
        |    ВозвратТоваровОтПокупателяТовары.Номенклатура,
        |    -ВозвратТоваровОтПокупателяТовары.Сумма,
        |    -ВозвратТоваровОтПокупателяТовары.Количество,
        |    -(ВозвратТоваровОтПокупателяТовары.ЕдиницаИзмерения.Вес * ВозвратТоваровОтПокупателяТовары.Количество)
        |ИЗ
        |    Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары
        |ГДЕ
        |    ВозвратТоваровОтПокупателяТовары.Ссылка.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ) И КОНЕЦПЕРИОДА(&Дата, ДЕНЬ)
        |    И ВозвратТоваровОтПокупателяТовары.Ссылка.Проведен
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    КонтактнаяИнформация.Объект КАК КонтрагентДоставки,
        |    КонтактнаяИнформация.Тип,
        |    КонтактнаяИнформация.Вид,
        |    КонтактнаяИнформация.ЗначениеПоУмолчанию,
        |    КонтактнаяИнформация.Доставка,
        |    КонтактнаяИнформация.РайонДоставки,
        |    КонтактнаяИнформация.Вид.Наименование,
        |    КонтактнаяИнформация.Представление
        |ПОМЕСТИТЬ ВТ_Доставка
        |ИЗ
        |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        |ГДЕ
        |    КонтактнаяИнформация.Вид.Ссылка = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресДоставкиКонтрагента)
        |    И КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
        |    И КонтактнаяИнформация.Доставка
        |    И КонтактнаяИнформация.Объект В
        |            (ВЫБРАТЬ
        |                ВТ_Продажи.Контрагент
        |            ИЗ
        |                ВТ_Продажи КАК ВТ_Продажи)
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТ_Продажи.АвтоПеревозки,
        |    ВТ_Продажи.Водитель,
        |    ВТ_Продажи.Контрагент,
        |    ВТ_Доставка.РайонДоставки,
        |    ВТ_Доставка.Представление КАК АдресДоставки,
        |    ВТ_Продажи.Номенклатура,
        |    ВТ_Продажи.Количество,
        |    ВТ_Продажи.Сумма,
        |    ВТ_Продажи.ОбщийВес
        |ПОМЕСТИТЬ ВТ_Данные
        |ИЗ
        |    ВТ_Продажи КАК ВТ_Продажи
        |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Доставка КАК ВТ_Доставка
        |        ПО ВТ_Продажи.Контрагент = ВТ_Доставка.КонтрагентДоставки
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТ_Данные.Контрагент КАК Контрагент,
        |    ВТ_Данные.Номенклатура КАК Номенклатура,
        |    СУММА(ВТ_Данные.Количество) КАК Количество,
        |    СУММА(ВТ_Данные.Сумма) КАК Сумма,
        |    СУММА(ВТ_Данные.ОбщийВес) КАК ОбщийВес,
        |    ВТ_Данные.АвтоПеревозки
        |ИЗ
        |    ВТ_Данные КАК ВТ_Данные
        |
        |СГРУППИРОВАТЬ ПО
        |    ВТ_Данные.Контрагент,
        |    ВТ_Данные.Номенклатура,
        |    ВТ_Данные.АвтоПеревозки
        |ИТОГИ
        |    СУММА(Количество),
        |    СУММА(Сумма),
        |    СУММА(ОбщийВес)
        |ПО
        |    Номенклатура,
        |    Контрагент";
    
    Запрос.УстановитьПараметр("Дата", Дата);
    
    РезультатЗапроса = Запрос.Выполнить();

По логике - собирает Расходные - Возвраты группирует их за Дату;
В итоге хотят видеть


Можно ли такое сделать не используя Построитель ( не шарю его ) или СКД ( там клепать свой макет наверное надо будет ) ?
Просмотров: 809, последний комментарий от sava1   
Сообщение пользователю - открыть обработку? [раздел Программирование в 1С Предприятие 8.3]
Автор AnryMc — 29.09.25, 10:03 — 5 комментариев
Доброго времени суток!

Возможно ли привязать открытие определенной обработки (или её формы) к "щелчку" по

Сообщение = Новый СообщениеПользователю;

Просмотров: 283, последний комментарий от andytg   
Данные из регистра сведений Документы физических лиц не подтягиваются при отображении карточки физического лица [раздел Программирование в 1С Предприятие 8.3]
Автор Svetas2026 — 25.09.25, 12:36 — 3 комментариев
Добрый день, перегоняю данные из 7.7 в КУП 8.3
при перегоне данные паспорта физического лица записываю в регистр Документы Физических лиц,
но они почему-то не попадают, не отображаются в карточке физического лица.
точно тоже происходит и с контактами физического лица,
они записіваются в регистр, но не попадают в карточку,
и с датой принятия и увольнения сотрудника, и с суммой аванса.
В чём проблема?
Код
 Для Индекс = 0 По Данные.Количество() - 1 Цикл    
     если  СокрЛП(Данные[Индекс].ИНН)<>"" Тогда
       Запрос = Новый Запрос;
       Запрос.Текст =
        "ВЫБРАТЬ
        |    ФизическиеЛица.Ссылка КАК Ссылка
        |ИЗ
        |    Справочник.ФизическиеЛица КАК ФизическиеЛица
        |ГДЕ
        |    ФизическиеЛица.КодПоДРФО = &ИНН";
       Запрос.УстановитьПараметр("ИНН", Данные[Индекс].ИНН);
       Результат = Запрос.Выполнить();
    
        Если НЕ Результат.Пустой() Тогда
          Выборка = Результат.Выбрать();
          Выборка.Следующий();
          ФизЛицо = Выборка.Ссылка.ПолучитьОбъект();
        Иначе
          ФизЛицо = Справочники.ФизическиеЛица.СоздатьЭлемент();
        КонецЕсли;
        ФизЛицо.Наименование= СокрЛП(Данные[Индекс].ФИО);
        ФизЛицо.ФИО = СокрЛП(Данные[Индекс].ФИО);
        ФизЛицо.КодПоДРФО = СокрЛП(Данные[Индекс].ИНН);
        
        
        
        ФизЛицо.ДатаРождения = Дата(Сред(Лев(Данные[Индекс].Дата_рождения, 10),7,4),Сред(Лев(Данные[Индекс].Дата_рождения, 10),4,2),Сред(Лев(Данные[Индекс].Дата_рождения, 10),1,2));
        ФизЛицо.Пол = Данные[Индекс].Пол;  
        ФизЛицо.Фамилия= СокрЛП(Данные[Индекс].Фамилия);
        ФизЛицо.Имя=СокрЛП(Данные[Индекс].Имя);
        ФизЛицо.Отчество=СокрЛП(Данные[Индекс].Отчество);
        ФизЛицо.Инициалы=(Лев(Данные[Индекс].Имя, 1))+"."+(Лев(Данные[Индекс].Фамилия, 1)) +".";
        ФизЛицо.Записать();  
        
          
          

// Указываем вид документа
       ВидДокумента = Справочники.ВидыДокументовФизическихЛиц.Паспорт; // Или другой вид в BAS КУП

       // Создаем набор записей регистра
       НаборЗаписей = РегистрыСведений.ДокументыФизическихЛиц.СоздатьНаборЗаписей();
       НаборЗаписей.Отбор.Физлицо.Установить(ФизЛицо.Ссылка);
       НаборЗаписей.Отбор.ВидДокумента.Установить(ВидДокумента);
      
                                     
      
       // Добавляем новую запись
       НоваяЗапись = НаборЗаписей.Добавить();
       НоваяЗапись.Физлицо = ФизЛицо.Ссылка;
       НоваяЗапись.ВидДокумента = ВидДокумента;
       НоваяЗапись.Серия = СокрЛП(Данные[Индекс].Серия_паспорта);
       НоваяЗапись.Номер = СокрЛП(Данные[Индекс].Н_паспорта);
       НоваяЗапись.ДатаВыдачи =  Дата(Сред(Лев(Данные[Индекс].Дата_выдачи_паспорта, 10),7,4),Сред(Лев(Данные[Индекс].Дата_выдачи_паспорта, 10),4,2),Сред(Лев(Данные[Индекс].Дата_выдачи_паспорта, 10),1,2));
       НоваяЗапись.ЯвляетсяДокументомУдостоверяющимЛичность=Истина;
       НоваяЗапись.Активность=Истина;  
      
       НоваяЗапись.СтранаВыдачи=Справочники.СтраныМира.Украина;
       НоваяЗапись.КемВыдан= СокрЛП(Данные[Индекс].Кем_выдан_паспорт);
       НоваяЗапись.Период = ТекущаяДата(); // Для периодического регистра
      // Пытаемся записать
       Попытка
         НаборЗаписей.Записать(Истина); // Заменить существующие записи
         // Успешно записано
       Исключение
    // Здесь можно добавить логирование ошибки, если нужно
      // Ошибка при записи
       КонецПопытки;
      
      
        
    // Получаем виды контактной информации
    ВидТелефона = Справочники.ВидыКонтактнойИнформации.ТелефонМобильныйФизическиеЛица;
    ВидАдреса = Справочники.ВидыКонтактнойИнформации.АдресМестаПроживанияФизическиеЛица;
    // Создаем менеджер для работы с контактной информацией
    МенеджерКонтактов = УправлениеКонтактнойИнформацией;

    Попытка
        // Заполняем телефон, если передан
        Если ЗначениеЗаполнено(Данные[Индекс].Телефон) Тогда
            ЗначенияПолейТелефон = Новый Массив;
            ЗначенияПолейТелефон.Добавить(Новый Структура("ИмяПоля, Значение", "НомерТелефона", Данные[Индекс].Телефон));
            МенеджерКонтактов.ЗаписатьКонтактнуюИнформацию(
                ФизЛицо.Ссылка,
                СокрЛП(Данные[Индекс].Телефон), // Представление
                ВидТелефона,
                Перечисления.ТипыКонтактнойИнформации.Телефон,
                МенеджерКонтактов.КонтактнаяИнформацияВJSON(СокрЛП(Данные[Индекс].Телефон))
            );
        КонецЕсли;
        
        // Заполняем адрес, если передан
        Если ЗначениеЗаполнено(Данные[Индекс].Адрес_сотрудника) Тогда
            ЗначенияПолейАдрес = Новый Массив;
            ЗначенияПолейАдрес.Добавить(Новый Структура("ИмяПоля, Значение", "Представление", Данные[Индекс].Адрес_сотрудника));
            МенеджерКонтактов.ЗаписатьКонтактнуюИнформацию(
                ФизЛицо.Ссылка,
                СокрЛП(Данные[Индекс].Адрес_сотрудника), // Представление
                ВидАдреса,
                Перечисления.ТипыКонтактнойИнформации.Адрес,
                МенеджерКонтактов.КонтактнаяИнформацияВJSON(СокрЛП(Данные[Индекс].Адрес_сотрудника))
            );
        КонецЕсли;
        
                
    Исключение
        // Логирование ошибки, если нужно
        // Сообщить(ОписаниеОшибки());
    КонецПопытки;
    
        
        
    ////==============================================
            Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
      |Организации.Ссылка КАК Ссылка,
      |Организации.КодПоЕДРПОУ КАК КодПоЕДРПОУ
      |ИЗ
      |Справочник.Организации КАК Организации
      |ГДЕ
      |Организации.КодПоЕДРПОУ = &Код";
        Запрос.УстановитьПараметр("Код", "34994962");
        Результат = Запрос.Выполнить();
    
        Если НЕ Результат.Пустой() Тогда
          Выборка = Результат.Выбрать();
          Выборка.Следующий();
          Организация = Выборка.Ссылка.ПолучитьОбъект();
        Иначе
        //  Сотрудник = Справочники.Сотрудники.СоздатьЭлемент();
        КонецЕсли;

    
      
    
    
    // Поиск сотрудника по табельному номеру
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    Сотрудники.Ссылка КАК Ссылка
        |ИЗ
        |    Справочник.Сотрудники КАК Сотрудники
        |ГДЕ
        |    Сотрудники.ФизическоеЛицо = &ФизическоеЛицо";
        Запрос.УстановитьПараметр("ФизическоеЛицо", ФизЛицо.Ссылка);
        Результат = Запрос.Выполнить();
    
        Если НЕ Результат.Пустой() Тогда
          Выборка = Результат.Выбрать();
          Выборка.Следующий();
          Сотрудник = Выборка.Ссылка.ПолучитьОбъект();
        Иначе
          Сотрудник = Справочники.Сотрудники.СоздатьЭлемент();
        КонецЕсли;
        
                        
        Сотрудник.ФизическоеЛицо = ФизЛицо.Ссылка;  
        Сотрудник.Наименование= СокрЛП(ФизЛицо.Наименование);
        Сотрудник.ГоловнаяОрганизация= Организация.Ссылка;
        Сотрудник.Записать();  
                
                                                        
        ЗаполнитьКадровыеДанныеСотрудника(Сотрудник.Ссылка,Дата(Сред(Лев(Данные[Индекс].Дата_приёма, 10),7,4),Сред(Лев(Данные[Индекс].Дата_приёма, 10),4,2),Сред(Лев(Данные[Индекс].Дата_приёма, 10),1,2)),Дата(Сред(Лев(Данные[Индекс].Дата_увольнения, 10),7,4),Сред(Лев(Данные[Индекс].Дата_увольнения, 10),4,2),Сред(Лев(Данные[Индекс].Дата_увольнения, 10),1,2))
, СокрЛП(Данные[Индекс].Табельный_Номер));
    //    УстановитьСуммуАванса(Сотрудник.Ссылка, Данные[Индекс].Аванс, Данные[Индекс].Дата_приёма);
        
    конецЕсли;          
  КонецЦикла;
Просмотров: 373, последний комментарий от xlmel   
Как выгрузить из Журнала регистрации "своё" (добавленное) событие [раздел Программирование в 1С Предприятие 8.3]
Автор AnryMc — 18.09.25, 13:19 — 4 комментариев
В журнал регистрации добавлялить "свои события", например: "МоёСобытие.Отчет.МойОтчет"

Можно выгрузить Журнал регистрации по фильтру, Например:
    Фильтр  =  Новый Структура;
    
    Фильтр.Вставить("ДатаНачала", Отчет.НачалоПериода);
    Фильтр.Вставить("ДатаОкончания", Отчет.КонецПериода);
    
    МассивСобытий = Новый Массив;
    МассивСобытий.Добавить("_$Data$_.New"); //Создал
    МассивСобытий.Добавить("_$Data$_.Update"); //Изменил
    Фильтр.Вставить("Событие",МассивСобытий);

ВыгрузитьЖурналРегистрации(ТаблицаСобытий,Фильтр,СтрокаКолонокЖурналаРегистрации);


Выгружаются все события создания и изменения объектов...

Можно ли как то создать фильтр для своих событий?
Просмотров: 599, последний комментарий от AnryMc   
Як створити кнопку з картинкою і текстом під картинкою? [раздел Программирование управляемых форм 1С 8.2]
Автор vbi — 17.09.25, 12:06 — 4 комментариев
Наприклад 1С:Підприємство 8.3 (8.3.16.1224), самописна конфігурація

Як в керованому інтерфейсі створити кнопку з картинкою і щоб текст був під кнопкою а не зліва чи справа?
Просмотров: 562, последний комментарий от vbi   
Программно изменить Рабочую Дату [раздел Программирование в 1С Предприятие 8.3]
Автор DiMart — 15.09.25, 11:38 — 3 комментариев
Всем привет!
Платформа 8.3.24
Подскажите, пожалуйста, как программно изменить рабочую дату для ввода документов "задним" числом.
В конфигураторе сделал обработку УстановкаРабочейДаты, в модуле формы процедура:

&НаКлиенте
Процедура УстановкаРабочейДаты(Команда)
    ИспользованиеРабочейДаты = РежимРабочейДаты.Назначать;
    РабочаяДата = Объект.УстановитьРабочуюДату;
КонецПроцедуры


Программа выдает ошибку:
Переменная не определена (РежимРабочейДаты)
ИспользованиеРабочейДаты = <<?>>РежимРабочейДаты.Назначать; (Проверка: Тонкий клиент)

Спасибо за советы!
Просмотров: 526, последний комментарий от AnryMc   
Отключить ОтборСтрок [раздел Программирование в 1С Предприятие 8.3]
Автор AnryMc — 09.09.25, 9:53 — 0 комментариев
Есть Табличная часть "ААА" на управляемой форме.
В ней есть колонка "ХХХ" - тип "СправочникСсылка.ССС"

В заполненной табличной части есть кроме ссылок и "пустые ссылки"

Программно устанавливается отбор - всё отрабатывает отлично.
КритерийОтбора =  Новый ФиксированнаяСтруктура("ХХХ", Отчет.ОтборССС);

Элементы.ААА.ОтборСтрок = КритерийОтбора;


При попытке программно отключить отбор (испробовано 3 варианта)
// ВАРИАНТ 1:               КритерийОтбора =  Новый ФиксированнаяСтруктура("ХХХ", НЕОПРЕДЕЛЕНО);
// ВАРИАНТ 2:               КритерийОтбора =  Новый ФиксированнаяСтруктура();
// ВАРИАНТ 3:    
КритерийОтбора = НЕОПРЕДЕЛЕНО;

Элементы.ААА.ОтборСтрок = КритерийОтбора;

Отображаются НЕ ВСЕ строки а только с "пустой ссылкой"

ВОПРОС: КАК ОТМЕНИТЬ ОТБОР СТРОК ???

AnryMc @ Сегодня, 10:14 * ,

Вопрос снят - ВСЁ НОРМАЛЬНО
Ещё в одном месте вызывался отборСтрок

З.Ы. "Ну кто так строит?" Пробираюсь через дебри чужого кода

Просмотров: 852, оставить комментарий   
RSS Текстовая версия Сейчас: 17.10.25, 0:25
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!