1С: Тип не определен (Addln.КартинкаШтрихкода.BarCode)

Такая ошибка возникает в 1С на Linux если не установлена библиотека libpng.so Чтоб не гадать что именно нужно доустановить, можно сделать так:

apt install libpng*

UPDATE: Иногда это не помогает, или ошибка возвращается на некоторых ПК спустя несколько дней. Почему, вопрос открытый. Грешу на несколько кривые корпоративные обновления ОС. Второй способ решить проблему: найти в конфигураторе макет «КомпонентаПечатиШтрихкодов» и загрузить в него последнюю версию компонента скачанного с сайта 1С (на 10.06.2025 это BarcodeLibNative_10_0_10_5.zip). Да, прямо бинарник, прямо архив.

1С: Длина имени файла превысила 8 символов

При работе с файлами dbf, может возникать такая ошибка, если для генерации временного файла используется стандартная конструкция вида:

ПолучитьИмяВременногоФайла(".dbf")

И по слухам это не ошибка 1С, а особенность работы с файлами DBF — в самом формате файла не предусмотрен размер файла более 8 символов. Поэтому функцию «ПолучитьИмяВременногоФайла», можно заменить следующей конструкцией:

ИмяВременногоФайлаХар = КаталогВременныхФайлов()+Лев(Новый УникальныйИдентификатор(),8)+".dbf";

Ну и далее работать как-то так:

		Таблица = Новый XBase;     		
     	        Таблица.ОткрытьФайл(ИмяВременногоФайлаХар);
		Таблица.Первая();    
		Пока Не Таблица.ВКонце() Цикл
                  Если Не Таблица.ЗаписьУдалена() Тогда
		    Сообщить(Таблица.ACCOUNT);
                  конецесли;
                  Таблица.Следующая();
                конеццикла;	
	       Таблица.ЗакрытьФайл();

1с: Открытие формы для выбора дополнительных параметров из обработки

Задача: открыть дополнительную форму и обработать выбор параметра.

Решение: сделаем эту задачу, используя «оповещения». А именно откроем форму, а при завершении выбора параметров, создадим оповещение для основной формы в котором обработаем что собственно было выбрано на дополнительной форме.

Основная форма:

&НаКлиенте
Процедура ПоменятьИсполнителя(Команда)
	П = Новый Структура("НовыйИсполнительОграничения",объект.НовыйИсполнительОграничения);	
	ОткрытьФорму("ВнешняяОбработка.МастерРаспределенияЗаявкоНаОтключение.Форма.ФормаВыбораИсполнителя",П,ЭтотОбъект,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры   


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

Дополнительная форма:


&НаКлиенте
Процедура ВыбратьИЗакрыть(Команда)
	ПараметрВызова = объект.НовыйИсполнительОграничения;
	ФормаИсточник = "ВнешняяОбработка.МастерРаспределенияЗаявкоНаОтключение.Форма.Форма";
	Оповестить("ВыбранНовыйИсполнитель",ПараметрВызова,ФормаИсточник);
	Закрыть();
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	объект.НовыйИсполнительОграничения=Параметры["НовыйИсполнительОграничения"];
КонецПроцедуры
Дополнительная форма в обработке

1С: Событие «ПриКопировании» в регистре сведений

А вот не обрабатывает 1С такое событие в регистре сведений, поэтому одним из решений будет обработка параметров формы записи при событии «При создании на сервере». Например так:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	если ЗначениеЗаполнено(Параметры.ЗначениеКопирования.uuid) = истина тогда
		этотобъект.запись.uuid=Новый УникальныйИдентификатор();
	конецесли;	
КонецПроцедуры

Т.е. если это «копирование», то значение заполнено «старыми» данными и их можно перезаписать.

1С: Шпаргалка по работе с таблицей значений

Ниже приведены наиболее часто используемые применения. Рассматриваются наиболее часто встречающиеся операции.

Определение типа колонок:


// Ссылочные типы
ТЗ_ДанныеПоСотрудникам.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));  
ТЗ_ДанныеПоСотрудникам.Колонки.Добавить("СчетФактура", Новый ОписаниеТипов("ДокументСсылка.СчетФактураВыданный"));
ТЗ_ДанныеПоСотрудникам.Колонки.Добавить("ТипКонтактнойИнформации", Новый ОписаниеТипов("ПеречислениеСсылка.ТипыКонтактнойИнформации"));  
 
// Простые типы
ТЗ_ДанныеПоСотрудникам.Колонки.Добавить("ДолжностьНаименование", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(150))); 
ТЗ_ДанныеПоСотрудникам.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число",, Новый КвалификаторыЧисла(10,2)));
ТЗ_ДанныеПоСотрудникам.Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата",, Новый КвалификаторыДаты(ЧастиДаты.Дата)));
ТЗ_ДанныеПоСотрудникам.Колонки.Добавить("ЕстьОповещение", Новый ОписаниеТипов("Булево"));   
ТЗ_ДанныеПоСотрудникам.Колонки.Добавить("ИменаПолейСубконто", Новый ОписаниеТипов("Массив"));  

//Составное
МассивТипов = Новый Массив();
МассивТипов.Добавить(Тип("Булево"));
МассивТипов.Добавить(Тип("ПеречислениеСсылка.ВидыПродукцииИС"));	
ТЗ_ДанныеПоСотрудникам.Колонки.Добавить("МаркировкаОстатков", Новый ОписаниеТипов(МассивТипов));
     

Удаление строк:

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

Сортировка:

ТЗДат.Сортировать("Дата Возр");
1 3 4 5 6 7 52