Ошибка при загрузке данных тип не является подмножеством типа значений плана видов характеристик

Справочник из расширения в качестве субконто программно созданного счета

Я

  

АЛьФ

15.11.19 — 13:05

Типовая бухгалтерия  (3.0.74.51), конфигурация на поддержке. Делаю к ней расширение. В расширении добавлен справочник и создаются программно несколько забалансовых счетов, которые должны использовать этот справочник в качестве субконто.

При создании нового плана видов характеристик получаю ошибку: «Тип не является подмножеством типа значений плана видов характеристик»

Можно как-то это обойти?

  

Жан Пердежон

1 — 15.11.19 — 13:08

Что значит обойти? В типы ПВХ добавить нужно твой справочник

  

АЛьФ

2 — 15.11.19 — 13:12

2(1) Как это сделать, не снимая с поддержки конфигурацию?

  

hhhh

3 — 15.11.19 — 13:35

(2) захватить этот план видов характеристик ВидыСубконто в расширение и сделать. А как вы еще по-другому хотели?

  

Жан Пердежон

4 — 15.11.19 — 13:44

(3) или позвать программиста

  

АЛьФ

5 — 15.11.19 — 13:48

2(3) Не получится. Тогда надо будет тянуть в расширение все типы, на которые он ссылается. Т.е. половину конфиги в расширение с непонятным итогом.

2(4) Да ну на!

  

Масянька

6 — 15.11.19 — 13:53

(5) Привет :)

Это тебе не ламповые клюшки…

Далеко не все можно засунуть в расширения. И часто то, что можно засунуть, не решает задачи.

Ну, как-то так.

  

АЛьФ

7 — 15.11.19 — 13:56

2(6) Т.е. не обойти эту шнягу? Жаль…

  

Масянька

8 — 15.11.19 — 13:58

(7) Привыкай.

Обойти — снять с поддержки и сделать по человечески.

  

АЛьФ

9 — 15.11.19 — 14:24

2(8) Да уж… Столько лет уже восьмерке и до сих пор такая сырая…

  

Жан Пердежон

10 — 15.11.19 — 14:39

«сырость в головах»

  

Масянька

11 — 15.11.19 — 14:46

(9) Миром правят деньги (С)

А ты динозавр в этом мире :))))

  

unregistered

12 — 15.11.19 — 14:49

Если счета свои и аналитика своя, то зачем пытаться вкорячить всё это счастье на регистр бухгалтерии и в проводки?

Сделайте свои регистр(ы) накопления с нужными измерениями и подписки на обработку(и) проведения нужных документов.

  

Масянька

13 — 15.11.19 — 14:50

(12) А РН можно в расширение?

  

АЛьФ

14 — 15.11.19 — 15:14

2(10 Мудрая мысль. Очень мне помогла.

2(11) Зато во мне мяса много :)

  

АЛьФ

15 — 15.11.19 — 15:16

2(12) Надо подумать эту мысль. Просто код переносится из 7.7, а там на счетах сделано. Переделка на регистры — это переделка всего этого контура.

  

АЛьФ

16 — 15.11.19 — 15:22

2(12) Большое спасибо за подсказку.

  

АЛьФ

17 — 15.11.19 — 16:21

Ы… И тут случилось очередное ограничение платформы: «Использование регистров накопления в расширениях недопустимо в режиме совместимости 8.3.12 и ниже». А у типовой бухгалтерии как раз стоит совместимость «8.3.12».

Они это специально так, что ли?

  

ДенисЧ

18 — 15.11.19 — 16:23

(17) Подними…

  

АЛьФ

19 — 15.11.19 — 16:25

2(18) Не поднимается без снятия с поддержки.

  

ДенисЧ

20 — 15.11.19 — 16:26

(19) А ты не снимай, а просто разреши редактирование…

  

АЛьФ

21 — 15.11.19 — 16:28

2(20) Нельзя. Конфига должна быть полностью на поддержке.

  

hhhh

22 — 15.11.19 — 16:31

(21) ну ты им скажи, что полностью на поддержке.

  

hhhh

23 — 15.11.19 — 16:33

(21) и объясни им, что нормально расширения будут работать после 2025 года. Согласны они 5 лет кочевряжиться, ждать, или всё таки разрешат вносить изменения?

  

АЛьФ

24 — 15.11.19 — 17:02

2(22) Кому «им»?

2(23) У меня уже был опыт поддержки конфиги с открытым редактированием. Как раз сейчас пытаюсь не попасть на те же грабли и сделать все через расширение.

  

МимохожийОднако

25 — 15.11.19 — 17:06

(24) Делать всё одним инструментом непродуктивно. Есть правила, по которым и поддержку не испортишь и задачу решишь. Например.

  

Сияющий в темноте

26 — 15.11.19 — 23:25

В чем проблема,что вы типы в расширение затянете?

ведь они туда без реквизитов попадут,и просто будет проверка перед применением расширения на то,что они есть,но ведь субконто из конфы никто не выкинет.

  

АЛьФ

27 — 18.11.19 — 09:53

2(26) Во-первых, слишком много мусора в расширении будет. Во-вторых, если в типовой изменят состав типов плана видов характеристик, я явно получу проблемы в расширении.

  

АЛьФ

28 — 18.11.19 — 09:55

2(25) Я в курсе, что одинесники любят предлагать решение совсем не той задачи, которую требуется решить. Сам такой. Но давай представим, что это тестовое задание, которое надо решить именно в поставленных рамках.

  

Aleksey

29 — 18.11.19 — 10:02

(17) подожди месяц. В декабри БП переедит на 14 платформу

  

Aleksey

30 — 18.11.19 — 10:04

(27) А разве в ПВХ можно добавить свои значения через расширения? Я как то пробовал, но он ругался, что мол состав ПВХ в конфигураторе и в расширении различный. Т.е. менять можно, а вот сохранить нельзя

  

Aleksey

31 — 18.11.19 — 10:05

по крайне мере в УНФ когда я пытался в дополнительные реквизиты добавить свой справочник через расширение меня ждал облом

  

RomanYS

32 — 18.11.19 — 10:12

(27) Естественно получишь. Проблем с расширениями при настройке изменяемого поставщиком функционала должно быть больше чем при аккуратном редактировании конфигурации

  

АЛьФ

33 — 18.11.19 — 11:32

2(30) Х.з. у меня отвалилось на попытке заполнить значениями основной конфигурации. Точнее заполнило левыми значениями.

  

АЛьФ

34 — 18.11.19 — 11:34

2(32) Поэтому и не хочется менять функционал поставщика. Хочется его только дополнить.

  

Йохохо

35 — 18.11.19 — 11:40

(34) дополнить типовой функционал прикладного решения поставщика используя функционал расширения поставщика функционала прикладного решения поставщика

  

АЛьФ

36 — 18.11.19 — 11:47

2(35) Именно так.

  

RomanYS

37 — 18.11.19 — 12:05

(34) Дополнить — это что-то добавить. А изменить доступные типы ПВХ — это уже не дополнение, а изменение.

  

АЛьФ

38 — 18.11.19 — 12:06

2(37) Надо не изменить доступные типы, а именно дополнить их.

  

RomanYS

39 — 18.11.19 — 12:15

(38) Архитектурно тип ПВХ — это одно поле (хотя сам тип составной). Поэтому его можно только «изменить»

  

АЛьФ

40 — 18.11.19 — 12:26

2(39) Именно поэтому пришлось искать обходной путь.

  

RomanYS

41 — 18.11.19 — 12:29

(40) Если «обходной путь» это про расширения, то ты ошибся. Граблей на этом пути точно больше.

  

АЛьФ

42 — 18.11.19 — 12:35

2(41) Меня всегда умиляет такая категоричность в суждениях.

  

RomanYS

43 — 18.11.19 — 12:43

(42) Естественно это только моё мнение и в нём большая субъективная доля скепсиса по отношению к расширениям. Но с каждой подобной веткой оно крепнет.

  

АЛьФ

44 — 19.11.19 — 15:44

Решил через справочник «Субконто». В наименование его элемента пишу GUID элемента справочника из расширения. Посмотрим как будет работать.

  

RomanYS

45 — 19.11.19 — 15:47

(44) GUID текстом не слишком практично. Почему тогда не добавить (в расширении) в субконто ссылку на новый справочник&

  

АЛьФ

46 — 19.11.19 — 15:50

2(45) Ы… Как-то совсем в голову не пришло, что так можно :) Спасибо.

Доброго времени суток! При обновлении конфы бух 2.0 на 3.0 столкнулся с некоторыми проблемами. Одна из них решилась чисткой РегистраСведений ОтложенныеДвиженияДокументов (не получалось обновить конфигурацию базы данных, кнопка принятия изменений была неактивной). Сейчас обновилось, в конфигуратор заходит, при запуске Предприятия выдает окно Легальности получения обновлений, дале пытается произвести информационной базы…и…. Платформа: 1С:Предприятие 8.2 (8.2.17.153) Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.18.5) ( Copyright (С) ООО «1C», 2010 — 2012. Все права защищены ( Режим: Файловый (без сжатия) Ошибки: ——————————————————————————— 27.01.2013 23:33:27 {ОбщийМодуль.ОбновлениеИнформационнойБазыКлиент.Модуль}: При обновлении информационной базы возникла ошибка: Тип не является подмножеством типа значений плана видов характеристик Подробности см. в Журнале регистрации. Если кто знает или есть догадки, пожалуйста подскажите. Буду признателен всем за любую помощь.

Еще один момент-работаю с реальной базой клиента. Если все делать на чистой 2.0, обновляется на 3.0 без проблем.

смотри что нахреначили в план видов характеристик.. небось измененная база то? своих субконто нафигачили?

делал сравнение, нихрена нет, буду конечно еще смотреть, но думаю с шестого раза просмотра не поменяется ничего.

ты в пользовательском режиме глянь чо там нафигачили…

IamAlexy, ткни пожалуйста носом куда смотреть и что должно быть.

в планах все чято есть, является предопределенными объктами

рабочая на поддержке? типы субконто не изменены?

на поддержке, Господи Боже мой, теперь     Тип не является подмножеством типа значений плана видов характеристик шо занах О_О

накатываю сверху 3_0_18_5

думаю тут или у меня руки кривые,или у бухгалтера =)

Я больше склоняюсь к тому, чтобы поставить чистую бух 3 и  пусть бухи сами ручками вносят остатки. Хороший вариант?

Бухгалтер — экстремал? Может им для начала все же баланс сдать, а потом уже переходить на новую систему? Тем более там и осталось-то подождать.

Тоже самое сказал им, у них стоит еще торговля 10.3, и настроен односторонний обмен УТ-БП. Документы выгружает, но не проводит, вообще выгрузка криво шла, пока я правила не изменил , добавил дату начала выгрузки. Иначе у них все документы одному Нуралию известно как проводились и перепроводились. Кто-то подсказал что в 11 УТ и БП 3.0 все идеально гладко. На 11 перевел их, а обмен есть, но нет, нужно им 3.0 поставить и все тебе..

Поставлю им 7.7, вот удивятся О_О

Гыгыгы. Вот ребята попали походу… Отличный вариант. Особенно всякоразное для учета НДС руками введется отлично.

Будут знать в следующий раз как нанимать неопытного бухгалтера.

Спасибо всем кто принимал участие и за помощь :) Особенно IamAlexy. Думаю тему можно закрывать.

Будет им счастье на УТ 11 и БП 2.0

в новогодние переводил — проблем небыло. причем переводил адскую переписку… видимо чото накосячили в новых релизах.. хз

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Доброго времени суток, уважаемые коллеги! В этой статье рассмотрены некоторые кусочки кода, который часто нужны на разных этапах разработки программного кода 1С. Здесь собраны некоторые примеры, которые использовались в разных задачах, с которыми мне пришлось столкнуться. Кроме того, есть статья о примерах программирования в версии 7.7 и отдельная статья по примерам работы с табличным полем. Итак, приступим!

  1. Как правильно реализовать цикл с постусловием?
  2. Как реализовать цикл с уменьшающимся счетчиком?
  3. Как получить название документа (аналог метода 1С 7.7 Вид())?
  4. Как узнать имеет ли текущий пользователь определённую роль?
  5. Как программно формируются кнопки печати документов в 1С:Предприятие 8.2?
  6. Как сделать запись в журнал регистрации 1С:Предприятие 8?
  7. Как правильно сделать выбор из составного типа данных?
  8. Как узнать тип объекта 1С8?
  9. Как открыть выпадающий список около элемента управления формы?
  10. Как программно переключить страницу (закладку) на «Панели»?
  11. Как активизировать элемент формы?
  12. Как обратиться к текущей странице формы, если на форму не помещён элемент управления формы «Панель»?
  13. Как установить значение в поле ввода в табличной части документа?
  14. Как правильно удалить строки из текстового файла с помощью встроенного языка системы 1С8?
  15. Как в 1С8 получить из строки с разделителями определённую подстроку по её позиции?
  16. Как проверить существует ли реквизит справочника 1с8?
  17. Как перебрать субконто счёта?
  18. Как устранить ошибку: Тип не является подмножеством типа значений плана видов характеристик?

Как правильно реализовать цикл с постусловием?

Повторять = Истина;
Пока Повторять Цикл
	А=А+1;
	Повторять = (А<10);
КонецЦикла;

Благодаря переменной Повторять наш цикл выполнится хотя бы один раз.

Как реализовать цикл с уменьшающимся счетчиком?

Вариант 1.

Зн1 = 100;
Зн2 = 1;
Сч=Зн1;
Пока Сч>=Зн2 Цикл
	Сч=Сч-1;
КонецЦикла;

Вариант 2.

Вариант 2.
Для Сч = -Зн1 По -Зн2 Цикл
	// Чтобы получить положительную величину,
	// если вдруг Сч станет положительным.
	СчЗн = Макс(Сч, -Сч);
КонецЦикла;

Как получить название документа (аналог метода 1С 7.7 Вид())?

ДокументСсылка.Метаданные().Имя;
// получаем: УвольнениеИзОрганизаций
ДокументСсылка.Метаданные().ПолноеИмя();
// получаем: Документ.УвольнениеИзОрганизаций

Как узнать имеет ли текущий пользователь определённую роль?

Используйте функцию сеанса работы «РольДоступна» (IsInRole), которая определяет доступность указанной роли текущему пользователю:

Если Не РольДоступна("ПравоАдминистрирования") Тогда
    Сообщить("Роль «Право администрирования» не доступна!");
КонецЕсли;

Или используйте следующую функцию:

Функция ПравоАдмина()
	Для Каждого РольМетаданных из Метаданные.Роли Цикл
		ИмяРоли = РольМетаданных.Имя;
		Если ИмяРоли = "ПравоАдминистрирования" Тогда
			Код = СокрЛП(глТекущийПользователь.Код);
			Юзер = ПользователиИнформационнойБазы.НайтиПоИмени(Код);
			Возврат Юзер.Роли.Содержит(РольМетаданных);
		КонецЕсли;
	КонецЦикла;
КонецФункции // ПравоАдмина()

Как программно формируются кнопки печати документов в 1С:Предприятие 8.2?

  1. В модуле формы документа в процедурах ПередОткрытием, ПослеЗаписи, ОсновныеДействияФормыУстановитьПечатьПоУмолчанию добавляют вызов процедуры УстановитьКнопкиПечати.
  2. Процедура УстановитьКнопкиПечати находится модуле формы документа. В этой процедуре и происходят основные действия по формированию кнопок печати. Обратим внимание, что из нее происходит вызов функции ПолучитьДеревоМакетовПечати.
  3. Функция ПолучитьДеревоМакетовПечати получает список макетов конфигурации и внешних макетов. Для этого во втором параметре этой процедуры вызывается функция ПолучитьСтруктуруПечатныхФорм, а в ее теле функция ДобавитьВДеревоМакетовДополнительныеФормы.
  4. Процедура ПолучитьСтруктуруПечатныхФорм возвращает структуру с внутренними печатными формами. Пример:
    // Возвращает доступные варианты печати документа
    //
    // Вовращаемое значение:
    //  Струткура, каждая строка которой соответствует одному из вариантов печати
    //  
    Функция ПолучитьСтруктуруПечатныхФорм() Экспорт
        СтруктураМакетов = Новый Структура;
        СтруктураМакетов.Вставить("ПереченьЦен","Перечень цен");
        СтруктураМакетов.Вставить("Ценники", "Ценники на товары");
        СтруктураМакетов.Вставить("ПечатьДвеЦены", "Две цены");
        Возврат СтруктураМакетов;
    КонецФункции // ПолучитьСписокПечатныхФорм()
  5. С помощью процедуры ДобавитьВДеревоМакетовДополнительныеФормы получаются дополнительные печатные формы из справочника «ВнешниеОбработки».
  6. В модуле объекта документа, в процедуре Печать() добавляются условия, обрабатывающее идентификатор новой печатной формы:
    // Процедура осуществляет печать документа. Можно направить печать на
    // экран или принтер, а также распечатать необходмое количество копий.
    // Название макета печати передается в качестве параметра,
    // по переданному названию находим имя макета в соответствии.
    //
    // Параметры:
    //  НазваниеМакета - строка, название макета.
    //
    Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт
    
    	...
    
    	Если ИмяМакета = "ПереченьЦен" Тогда
    		ТабДокумент = ПечатьДокумента();
    	ИначеЕсли ИмяМакета = "Ценники" Тогда
    		Попытка  			
    			ТабДокумент = ПечатьЦенников(); 			
    		Исключение
    			Предупреждение("Нет прав доступа!");		
    		КонецПопытки;	
    	ИначеЕсли ИмяМакета = "ПечатьДвеЦены" Тогда
    		ТабДокумент = ПечатьДокументаДвеЦены();		
    	КонецЕсли;
    	...	
    	
    КонецПроцедуры // Печать()
    

Как сделать запись в журнал регистрации 1С:Предприятие 8?

Процедура РегистрСведенийСписокДополнительныеУслугиПередУдалением(Элемент)
	ТС = Элемент.ТекущаяСтрока;
	Комментарий = "Код: " + ТС.Код +
		    ". Номенклатура: " + ТС.Номенклатура +
		    ". Вид наценки: " + ТС.ВидНаценки;
	ЗаписьЖурналаРегистрации("Данные.Удаление",
		УровеньЖурналаРегистрации.Информация,
		Метаданные.РегистрыСведений.ДополнительныеУслуги,
		РежимТранзакцииЗаписиЖурналаРегистрации.Независимая,
		Комментарий);
КонецПроцедуры

Как правильно сделать выбор из составного типа данных?

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

Как узнать тип объекта 1С8?

Если ТипЗнч(ТекОбъект) = Тип("СправочникСсылка.Номенклатура") Тогда
	...
КонецЕсли;

Если ТипЗнч(ТекОбъект) = Тип("Строка") Тогда
	...
КонецЕсли;

Как программно переключить страницу (закладку) на «Панели»?

Панель1 = ЭлементыФормы.Панель1;
Панель1.ТекущаяСтраница = Панель1.Страницы.Страница2;
Панель1.ТекущаяСтраница = Панель1.Страницы["Страница2"];

Как открыть выпадающий список около элемента управления формы?

Воспользуемся методом формы ВыбратьИзМеню(<СписокЗначений>, <ЭлементФормы>):

//выведем пользователю список вариантов, 
//для ввода СФ около элемента управления «Кнопка»
СписокДействийВводСФ = Новый СписокЗначений();
СписокДействийВводСФ.Добавить("ВвестиНовыйСчетФактуру", "Ввести новый счет-фактуру");
СписокДействийВводСФ.Добавить("ДополнитьСуществующийСчетФактуру", "Дополнить существующий счет-фактуру");
// ФормаДокумента.ТекущийЭлемент - 
//Элемент, около которого открывается список 
ВыбранныйВариантВводаСФ = ФормаДокумента.ВыбратьИзМеню(СписокДействийВводСФ, ФормаДокумента.ТекущийЭлемент);
Если ВыбранныйВариантВводаСФ = Неопределено Тогда
	Возврат;
КонецЕсли;

Если ВыбранныйВариантВводаСФ.Значение = "ВвестиНовыйСчетФактуру" Тогда
	...
КонецЕсли;

Как активизировать элемент формы?

Воспользуйтесь свойством «ТекущийЭлемент» объекта «Форма».

Если НЕ ЗначениеЗаполнено(Ответственный) Тогда
	Предупреждение("Сначала заполните поле: Ответственный!", 3);
	ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.Ответственный;
КонецЕсли;

Как обратиться к текущей странице формы, если на форму не помещён элемент управления формы «Панель»?

У формы есть свойство «Панель», обращаемся через него.

ЭтаФорма.Панель.ТекущаяСтраница = ...

Пример использования:

ПанельФормы = ЭтаФорма.Панель;
СтраницыФормы = ПанельФормы.Страницы;
Если ПанельФормы.ТекущаяСтраница = СтраницыФормы.Страница1 Тогда
      //Мы на первой странице
      . . .
ИначеЕсли ПанельФормы.ТекущаяСтраница = СтраницыФормы.Страница2 Тогда
      //Мы на второй странице
      . . .
Иначе //Мы на последней странице
      . . .
КонецЕсли;

Как установить значение в поле ввода в табличной части документа?

У нас есть документ, в котором табличная часть «Состав» содержит реквизит «Автомобиль» типа «СправочникСсылка.ТранспортныеСредства». Нужно, чтобы рядом стоящее поле ввода «НомерАвтомобиля» заполнялось значением из реквизита «Автомобиль.ГосНомер».

Установленное значение в поле ввода «НомерАвтомобиля» в табличной части документа

Как установить значение в поле ввода «НомерАвтомобиля» для каждой строки табличной части? В обработчике событий ПриПолученииДанных табличной часть «Состав» напишем следующий код:

Процедура СоставПриПолученииДанных(Элемент, ОформленияСтрок)
	Для каждого ОформлениеСтроки из ОформленияСтрок цикл
		ВычисленноеЗначение =
		ОформлениеСтроки.Ячейки.Автомобиль.Значение.ГосНомер;
		Оформлениестроки.Ячейки.НомерАвтомобиля.
		УстановитьТекст(ВычисленноеЗначение);
	КонецЦикла
КонецПроцедуры

Как правильно удалить строки из текстового файла с помощью встроенного языка системы 1С8?

Предположим, нужно удалить все строки из текста, которые содержат слово «1С».

Процедура УдалитьСтрокиТекста()
	ТекстДок = Новый ТекстовыйДокумент;
	ТекстДок.Прочитать("Текст.txt");
	Сч = 1;
	Пока Сч < ТекстДок.КоличествоСтрок() Цикл
		Строка = ТекстДок.ПолучитьСтроку(Сч);
		Если Найти(Строка, "1С") > 0 Тогда
			ТекстДок.УдалитьСтроку(Сч);
		Иначе  // Благодаря этой переменной мы 
			// не пропускаем строки в тексте
			Сч = Сч + 1;
		КонецЕсли;
	КонецЦикла;
	ТекстДок.Записать("Текст.txt");
КонецПроцедуры

Подобная процедура для правильного удаления строк таблицы значений описана тут. Также можете взглянуть на реализацию удаления строк в текстовом файле на PHP.

Как в 1С8 получить из строки с разделителями определённую подстроку по её позиции?

Для решения этой задачи используем функцию ПолучитьСтр():

//******************************************************************************
// ПолучитьСтр(знач ГдеИщем, Ном = 1, Р = ",")
//
// Параметры: 
//  знач ГдеИщем - строка, Ном = 1 - число, Р = "," - строка
//
// Возвращаемое значение:
//  Строка
//
// Описание:
//  Возвращает подстроку под номером Ном из строки ГдеИщем с разделителями Р  
//  
Функция ПолучитьСтр(знач ГдеИщем, Ном = 1, Р = ";")
	Ном1 = Число(Ном);
	Поз=Найти(ГдеИщем,Р);
	Если (Поз = 0) Тогда Возврат ГдеИщем;КонецЕсли;
	Стр1=Лев(ГдеИщем,Поз-1);
	Если Ном1 = 1 Тогда Возврат Стр1;КонецЕсли;
	СчетчикЦикла = 0;
	Для СчетчикЦикла = 2 По Ном1 Цикл
		ГдеИщем=Сред(ГдеИщем,Поз+1,СтрДлина(ГдеИщем)-Поз);
		Поз=Найти(ГдеИщем,Р);
		Если (Поз = 0) Тогда Возврат ГдеИщем;КонецЕсли;
		Стр=Лев(ГдеИщем,Поз-1);
		Если Ном1 = СчетчикЦикла Тогда Возврат Стр;КонецЕсли;
	КонецЦикла;
КонецФункции // ПолучитьСтр()

Пример использования:

НужнаяСтрока = "1С,PHP,Delphi,HTML,CSS";
Сообщить(ПолучитьСтр(НужнаяСтрока, 3, ","));

В окно служебных сообщений будет выведена подстрока «Delphi». Чтобы посмотреть как работает эта функция вы можете скачать внешнюю обработку здесь.

Пример работы функции ПолучитьСтр() в обработке 1С8

Посмотрите как реализована работа такой же функции в 1С 7.7.

Как проверить существует ли реквизит справочника 1с8?

СтатьяЗатрат.Метаданные().Реквизиты.Найти("ПринятиеКНалоговомуУчету") <> Неопределено

Как перебрать субконто счёта?

Процедура ПолучитьСубконтоСчета(Счет)
	ВидыСубконто = Счет.ВидыСубконто;
	Для Каждого ВидСубконто Из ВидыСубконто Цикл
		Сообщить(ВидСубконто.ВидСубконто);
	КонецЦикла;
КонецПроцедуры

Как устранить ошибку: Тип не является подмножеством типа значений плана видов характеристик?

При попытке перенести данные из одной базы в другую возникла ошибка:

Ошибка при установке значения атрибута контекста (ТипЗначения): 
Тип не является подмножеством типа значений плана видов характеристик

Не переносилось число с длиной 18 и точностью 6 (18.6) из базы источника, так как было установлена длина 15, точность 3 (15.3) в базе приемнике. Чтобы решить данную проблему, нужно в текущем плане видов характеристик изменить длину и точность с 15.3 на 18.6 в диалоге редактирования типа данных.


ПОДПИСКА

Справочник из расширения в качестве субконто программно созданного счета

Я
   АЛьФ

15.11.19 — 13:05

Типовая бухгалтерия  (3.0.74.51), конфигурация на поддержке. Делаю к ней расширение. В расширении добавлен справочник и создаются программно несколько забалансовых счетов, которые должны использовать этот справочник в качестве субконто.

При создании нового плана видов характеристик получаю ошибку: «Тип не является подмножеством типа значений плана видов характеристик»

Можно как-то это обойти?

   Жан Пердежон

1 — 15.11.19 — 13:08

Что значит обойти? В типы ПВХ добавить нужно твой справочник

   АЛьФ

2 — 15.11.19 — 13:12

2(1) Как это сделать, не снимая с поддержки конфигурацию?

   hhhh

3 — 15.11.19 — 13:35

(2) захватить этот план видов характеристик ВидыСубконто в расширение и сделать. А как вы еще по-другому хотели?

   Жан Пердежон

4 — 15.11.19 — 13:44

(3) или позвать программиста

   АЛьФ

5 — 15.11.19 — 13:48

2(3) Не получится. Тогда надо будет тянуть в расширение все типы, на которые он ссылается. Т.е. половину конфиги в расширение с непонятным итогом.

2(4) Да ну на!

   Масянька

6 — 15.11.19 — 13:53

(5) Привет :)

Это тебе не ламповые клюшки…

Далеко не все можно засунуть в расширения. И часто то, что можно засунуть, не решает задачи.

Ну, как-то так.

   АЛьФ

7 — 15.11.19 — 13:56

2(6) Т.е. не обойти эту шнягу? Жаль…

   Масянька

8 — 15.11.19 — 13:58

(7) Привыкай.

Обойти — снять с поддержки и сделать по человечески.

   АЛьФ

9 — 15.11.19 — 14:24

2(8) Да уж… Столько лет уже восьмерке и до сих пор такая сырая…

   Жан Пердежон

10 — 15.11.19 — 14:39

«сырость в головах»

   Масянька

11 — 15.11.19 — 14:46

(9) Миром правят деньги (С)

А ты динозавр в этом мире :))))

   unregistered

12 — 15.11.19 — 14:49

Если счета свои и аналитика своя, то зачем пытаться вкорячить всё это счастье на регистр бухгалтерии и в проводки?

Сделайте свои регистр(ы) накопления с нужными измерениями и подписки на обработку(и) проведения нужных документов.

   Масянька

13 — 15.11.19 — 14:50

(12) А РН можно в расширение?

   АЛьФ

14 — 15.11.19 — 15:14

2(10 Мудрая мысль. Очень мне помогла.

2(11) Зато во мне мяса много :)

   АЛьФ

15 — 15.11.19 — 15:16

2(12) Надо подумать эту мысль. Просто код переносится из 7.7, а там на счетах сделано. Переделка на регистры — это переделка всего этого контура.

   АЛьФ

16 — 15.11.19 — 15:22

2(12) Большое спасибо за подсказку.

   АЛьФ

17 — 15.11.19 — 16:21

Ы… И тут случилось очередное ограничение платформы: «Использование регистров накопления в расширениях недопустимо в режиме совместимости 8.3.12 и ниже». А у типовой бухгалтерии как раз стоит совместимость «8.3.12».

Они это специально так, что ли?

   ДенисЧ

18 — 15.11.19 — 16:23

(17) Подними…

   АЛьФ

19 — 15.11.19 — 16:25

2(18) Не поднимается без снятия с поддержки.

   ДенисЧ

20 — 15.11.19 — 16:26

(19) А ты не снимай, а просто разреши редактирование…

   АЛьФ

21 — 15.11.19 — 16:28

2(20) Нельзя. Конфига должна быть полностью на поддержке.

   hhhh

22 — 15.11.19 — 16:31

(21) ну ты им скажи, что полностью на поддержке.

   hhhh

23 — 15.11.19 — 16:33

(21) и объясни им, что нормально расширения будут работать после 2025 года. Согласны они 5 лет кочевряжиться, ждать, или всё таки разрешат вносить изменения?

   АЛьФ

24 — 15.11.19 — 17:02

2(22) Кому «им»?

2(23) У меня уже был опыт поддержки конфиги с открытым редактированием. Как раз сейчас пытаюсь не попасть на те же грабли и сделать все через расширение.

   МимохожийОднако

25 — 15.11.19 — 17:06

(24) Делать всё одним инструментом непродуктивно. Есть правила, по которым и поддержку не испортишь и задачу решишь. Например.

https://www.youtube.com/watch?v=hvMk9dNJ_8U&t=1398s

   Сияющий в темноте

26 — 15.11.19 — 23:25

В чем проблема,что вы типы в расширение затянете?

ведь они туда без реквизитов попадут,и просто будет проверка перед применением расширения на то,что они есть,но ведь субконто из конфы никто не выкинет.

   АЛьФ

27 — 18.11.19 — 09:53

2(26) Во-первых, слишком много мусора в расширении будет. Во-вторых, если в типовой изменят состав типов плана видов характеристик, я явно получу проблемы в расширении.

   АЛьФ

28 — 18.11.19 — 09:55

2(25) Я в курсе, что одинесники любят предлагать решение совсем не той задачи, которую требуется решить. Сам такой. Но давай представим, что это тестовое задание, которое надо решить именно в поставленных рамках.

   Aleksey

29 — 18.11.19 — 10:02

(17) подожди месяц. В декабри БП переедит на 14 платформу

   Aleksey

30 — 18.11.19 — 10:04

(27) А разве в ПВХ можно добавить свои значения через расширения? Я как то пробовал, но он ругался, что мол состав ПВХ в конфигураторе и в расширении различный. Т.е. менять можно, а вот сохранить нельзя

   Aleksey

31 — 18.11.19 — 10:05

по крайне мере в УНФ когда я пытался в дополнительные реквизиты добавить свой справочник через расширение меня ждал облом

   RomanYS

32 — 18.11.19 — 10:12

(27) Естественно получишь. Проблем с расширениями при настройке изменяемого поставщиком функционала должно быть больше чем при аккуратном редактировании конфигурации

   АЛьФ

33 — 18.11.19 — 11:32

2(30) Х.з. у меня отвалилось на попытке заполнить значениями основной конфигурации. Точнее заполнило левыми значениями.

   АЛьФ

34 — 18.11.19 — 11:34

2(32) Поэтому и не хочется менять функционал поставщика. Хочется его только дополнить.

   Йохохо

35 — 18.11.19 — 11:40

(34) дополнить типовой функционал прикладного решения поставщика используя функционал расширения поставщика функционала прикладного решения поставщика

   АЛьФ

36 — 18.11.19 — 11:47

2(35) Именно так.

   RomanYS

37 — 18.11.19 — 12:05

(34) Дополнить — это что-то добавить. А изменить доступные типы ПВХ — это уже не дополнение, а изменение.

   АЛьФ

38 — 18.11.19 — 12:06

2(37) Надо не изменить доступные типы, а именно дополнить их.

   RomanYS

39 — 18.11.19 — 12:15

(38) Архитектурно тип ПВХ — это одно поле (хотя сам тип составной). Поэтому его можно только «изменить»

   АЛьФ

40 — 18.11.19 — 12:26

2(39) Именно поэтому пришлось искать обходной путь.

   RomanYS

41 — 18.11.19 — 12:29

(40) Если «обходной путь» это про расширения, то ты ошибся. Граблей на этом пути точно больше.

   АЛьФ

42 — 18.11.19 — 12:35

2(41) Меня всегда умиляет такая категоричность в суждениях.

   RomanYS

43 — 18.11.19 — 12:43

(42) Естественно это только моё мнение и в нём большая субъективная доля скепсиса по отношению к расширениям. Но с каждой подобной веткой оно крепнет.

   АЛьФ

44 — 19.11.19 — 15:44

Решил через справочник «Субконто». В наименование его элемента пишу GUID элемента справочника из расширения. Посмотрим как будет работать.

   RomanYS

45 — 19.11.19 — 15:47

(44) GUID текстом не слишком практично. Почему тогда не добавить (в расширении) в субконто ссылку на новый справочник&

  

АЛьФ

46 — 19.11.19 — 15:50

2(45) Ы… Как-то совсем в голову не пришло, что так можно :) Спасибо.

Доброго времени суток, уважаемые коллеги! В этой статье рассмотрены некоторые кусочки кода, который часто нужны на разных этапах разработки программного кода 1С. Здесь собраны некоторые примеры, которые использовались в разных задачах, с которыми мне пришлось столкнуться. Кроме того, есть статья о примерах программирования в версии 7.7 и отдельная статья по примерам работы с табличным полем. Итак, приступим!

  1. Как правильно реализовать цикл с постусловием?
  2. Как реализовать цикл с уменьшающимся счетчиком?
  3. Как получить название документа (аналог метода 1С 7.7 Вид())?
  4. Как узнать имеет ли текущий пользователь определённую роль?
  5. Как программно формируются кнопки печати документов в 1С:Предприятие 8.2?
  6. Как сделать запись в журнал регистрации 1С:Предприятие 8?
  7. Как правильно сделать выбор из составного типа данных?
  8. Как узнать тип объекта 1С8?
  9. Как открыть выпадающий список около элемента управления формы?
  10. Как программно переключить страницу (закладку) на «Панели»?
  11. Как активизировать элемент формы?
  12. Как обратиться к текущей странице формы, если на форму не помещён элемент управления формы «Панель»?
  13. Как установить значение в поле ввода в табличной части документа?
  14. Как правильно удалить строки из текстового файла с помощью встроенного языка системы 1С8?
  15. Как в 1С8 получить из строки с разделителями определённую подстроку по её позиции?
  16. Как проверить существует ли реквизит справочника 1с8?
  17. Как перебрать субконто счёта?
  18. Как устранить ошибку: Тип не является подмножеством типа значений плана видов характеристик?

Как правильно реализовать цикл с постусловием?

Повторять = Истина;
Пока Повторять Цикл
	А=А+1;
	Повторять = (А<10);
КонецЦикла;

Благодаря переменной Повторять наш цикл выполнится хотя бы один раз.

Как реализовать цикл с уменьшающимся счетчиком?

Вариант 1.

Зн1 = 100;
Зн2 = 1;
Сч=Зн1;
Пока Сч>=Зн2 Цикл
	Сч=Сч-1;
КонецЦикла;

Вариант 2.

Вариант 2.
Для Сч = -Зн1 По -Зн2 Цикл
	// Чтобы получить положительную величину,
	// если вдруг Сч станет положительным.
	СчЗн = Макс(Сч, -Сч);
КонецЦикла;

Как получить название документа (аналог метода 1С 7.7 Вид())?

ДокументСсылка.Метаданные().Имя;
// получаем: УвольнениеИзОрганизаций
ДокументСсылка.Метаданные().ПолноеИмя();
// получаем: Документ.УвольнениеИзОрганизаций

Как узнать имеет ли текущий пользователь определённую роль?

Используйте функцию сеанса работы «РольДоступна» (IsInRole), которая определяет доступность указанной роли текущему пользователю:

Если Не РольДоступна("ПравоАдминистрирования") Тогда
    Сообщить("Роль «Право администрирования» не доступна!");
КонецЕсли;

Или используйте следующую функцию:

Функция ПравоАдмина()
	Для Каждого РольМетаданных из Метаданные.Роли Цикл
		ИмяРоли = РольМетаданных.Имя;
		Если ИмяРоли = "ПравоАдминистрирования" Тогда
			Код = СокрЛП(глТекущийПользователь.Код);
			Юзер = ПользователиИнформационнойБазы.НайтиПоИмени(Код);
			Возврат Юзер.Роли.Содержит(РольМетаданных);
		КонецЕсли;
	КонецЦикла;
КонецФункции // ПравоАдмина()

Как программно формируются кнопки печати документов в 1С:Предприятие 8.2?

  1. В модуле формы документа в процедурах ПередОткрытием, ПослеЗаписи, ОсновныеДействияФормыУстановитьПечатьПоУмолчанию добавляют вызов процедуры УстановитьКнопкиПечати.
  2. Процедура УстановитьКнопкиПечати находится модуле формы документа. В этой процедуре и происходят основные действия по формированию кнопок печати. Обратим внимание, что из нее происходит вызов функции ПолучитьДеревоМакетовПечати.
  3. Функция ПолучитьДеревоМакетовПечати получает список макетов конфигурации и внешних макетов. Для этого во втором параметре этой процедуры вызывается функция ПолучитьСтруктуруПечатныхФорм, а в ее теле функция ДобавитьВДеревоМакетовДополнительныеФормы.
  4. Процедура ПолучитьСтруктуруПечатныхФорм возвращает структуру с внутренними печатными формами. Пример:
    // Возвращает доступные варианты печати документа
    //
    // Вовращаемое значение:
    //  Струткура, каждая строка которой соответствует одному из вариантов печати
    //  
    Функция ПолучитьСтруктуруПечатныхФорм() Экспорт
        СтруктураМакетов = Новый Структура;
        СтруктураМакетов.Вставить("ПереченьЦен","Перечень цен");
        СтруктураМакетов.Вставить("Ценники", "Ценники на товары");
        СтруктураМакетов.Вставить("ПечатьДвеЦены", "Две цены");
        Возврат СтруктураМакетов;
    КонецФункции // ПолучитьСписокПечатныхФорм()
  5. С помощью процедуры ДобавитьВДеревоМакетовДополнительныеФормы получаются дополнительные печатные формы из справочника «ВнешниеОбработки».
  6. В модуле объекта документа, в процедуре Печать() добавляются условия, обрабатывающее идентификатор новой печатной формы:
    // Процедура осуществляет печать документа. Можно направить печать на
    // экран или принтер, а также распечатать необходмое количество копий.
    // Название макета печати передается в качестве параметра,
    // по переданному названию находим имя макета в соответствии.
    //
    // Параметры:
    //  НазваниеМакета - строка, название макета.
    //
    Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт
    
    	...
    
    	Если ИмяМакета = "ПереченьЦен" Тогда
    		ТабДокумент = ПечатьДокумента();
    	ИначеЕсли ИмяМакета = "Ценники" Тогда
    		Попытка  			
    			ТабДокумент = ПечатьЦенников(); 			
    		Исключение
    			Предупреждение("Нет прав доступа!");		
    		КонецПопытки;	
    	ИначеЕсли ИмяМакета = "ПечатьДвеЦены" Тогда
    		ТабДокумент = ПечатьДокументаДвеЦены();		
    	КонецЕсли;
    	...	
    	
    КонецПроцедуры // Печать()
    

Как сделать запись в журнал регистрации 1С:Предприятие 8?

Процедура РегистрСведенийСписокДополнительныеУслугиПередУдалением(Элемент)
	ТС = Элемент.ТекущаяСтрока;
	Комментарий = "Код: " + ТС.Код +
		    ". Номенклатура: " + ТС.Номенклатура +
		    ". Вид наценки: " + ТС.ВидНаценки;
	ЗаписьЖурналаРегистрации("Данные.Удаление",
		УровеньЖурналаРегистрации.Информация,
		Метаданные.РегистрыСведений.ДополнительныеУслуги,
		РежимТранзакцииЗаписиЖурналаРегистрации.Независимая,
		Комментарий);
КонецПроцедуры

Как правильно сделать выбор из составного типа данных?

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

Как узнать тип объекта 1С8?

Если ТипЗнч(ТекОбъект) = Тип("СправочникСсылка.Номенклатура") Тогда
	...
КонецЕсли;

Если ТипЗнч(ТекОбъект) = Тип("Строка") Тогда
	...
КонецЕсли;

Как программно переключить страницу (закладку) на «Панели»?

Панель1 = ЭлементыФормы.Панель1;
Панель1.ТекущаяСтраница = Панель1.Страницы.Страница2;
Панель1.ТекущаяСтраница = Панель1.Страницы["Страница2"];

Как открыть выпадающий список около элемента управления формы?

Воспользуемся методом формы ВыбратьИзМеню(<СписокЗначений>, <ЭлементФормы>):

//выведем пользователю список вариантов, 
//для ввода СФ около элемента управления «Кнопка»
СписокДействийВводСФ = Новый СписокЗначений();
СписокДействийВводСФ.Добавить("ВвестиНовыйСчетФактуру", "Ввести новый счет-фактуру");
СписокДействийВводСФ.Добавить("ДополнитьСуществующийСчетФактуру", "Дополнить существующий счет-фактуру");
// ФормаДокумента.ТекущийЭлемент - 
//Элемент, около которого открывается список 
ВыбранныйВариантВводаСФ = ФормаДокумента.ВыбратьИзМеню(СписокДействийВводСФ, ФормаДокумента.ТекущийЭлемент);
Если ВыбранныйВариантВводаСФ = Неопределено Тогда
	Возврат;
КонецЕсли;

Если ВыбранныйВариантВводаСФ.Значение = "ВвестиНовыйСчетФактуру" Тогда
	...
КонецЕсли;

Как активизировать элемент формы?

Воспользуйтесь свойством «ТекущийЭлемент» объекта «Форма».

Если НЕ ЗначениеЗаполнено(Ответственный) Тогда
	Предупреждение("Сначала заполните поле: Ответственный!", 3);
	ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.Ответственный;
КонецЕсли;

Как обратиться к текущей странице формы, если на форму не помещён элемент управления формы «Панель»?

У формы есть свойство «Панель», обращаемся через него.

ЭтаФорма.Панель.ТекущаяСтраница = ...

Пример использования:

ПанельФормы = ЭтаФорма.Панель;
СтраницыФормы = ПанельФормы.Страницы;
Если ПанельФормы.ТекущаяСтраница = СтраницыФормы.Страница1 Тогда
      //Мы на первой странице
      . . .
ИначеЕсли ПанельФормы.ТекущаяСтраница = СтраницыФормы.Страница2 Тогда
      //Мы на второй странице
      . . .
Иначе //Мы на последней странице
      . . .
КонецЕсли;

Как установить значение в поле ввода в табличной части документа?

У нас есть документ, в котором табличная часть «Состав» содержит реквизит «Автомобиль» типа «СправочникСсылка.ТранспортныеСредства». Нужно, чтобы рядом стоящее поле ввода «НомерАвтомобиля» заполнялось значением из реквизита «Автомобиль.ГосНомер».

Установленное значение в поле ввода «НомерАвтомобиля» в табличной части документа

Как установить значение в поле ввода «НомерАвтомобиля» для каждой строки табличной части? В обработчике событий ПриПолученииДанных табличной часть «Состав» напишем следующий код:

Процедура СоставПриПолученииДанных(Элемент, ОформленияСтрок)
	Для каждого ОформлениеСтроки из ОформленияСтрок цикл
		ВычисленноеЗначение =
		ОформлениеСтроки.Ячейки.Автомобиль.Значение.ГосНомер;
		Оформлениестроки.Ячейки.НомерАвтомобиля.
		УстановитьТекст(ВычисленноеЗначение);
	КонецЦикла
КонецПроцедуры

Как правильно удалить строки из текстового файла с помощью встроенного языка системы 1С8?

Предположим, нужно удалить все строки из текста, которые содержат слово «1С».

Процедура УдалитьСтрокиТекста()
	ТекстДок = Новый ТекстовыйДокумент;
	ТекстДок.Прочитать("Текст.txt");
	Сч = 1;
	Пока Сч < ТекстДок.КоличествоСтрок() Цикл
		Строка = ТекстДок.ПолучитьСтроку(Сч);
		Если Найти(Строка, "1С") > 0 Тогда
			ТекстДок.УдалитьСтроку(Сч);
		Иначе  // Благодаря этой переменной мы 
			// не пропускаем строки в тексте
			Сч = Сч + 1;
		КонецЕсли;
	КонецЦикла;
	ТекстДок.Записать("Текст.txt");
КонецПроцедуры

Подобная процедура для правильного удаления строк таблицы значений описана тут. Также можете взглянуть на реализацию удаления строк в текстовом файле на PHP.

Как в 1С8 получить из строки с разделителями определённую подстроку по её позиции?

Для решения этой задачи используем функцию ПолучитьСтр():

//******************************************************************************
// ПолучитьСтр(знач ГдеИщем, Ном = 1, Р = ",")
//
// Параметры: 
//  знач ГдеИщем - строка, Ном = 1 - число, Р = "," - строка
//
// Возвращаемое значение:
//  Строка
//
// Описание:
//  Возвращает подстроку под номером Ном из строки ГдеИщем с разделителями Р  
//  
Функция ПолучитьСтр(знач ГдеИщем, Ном = 1, Р = ";")
	Ном1 = Число(Ном);
	Поз=Найти(ГдеИщем,Р);
	Если (Поз = 0) Тогда Возврат ГдеИщем;КонецЕсли;
	Стр1=Лев(ГдеИщем,Поз-1);
	Если Ном1 = 1 Тогда Возврат Стр1;КонецЕсли;
	СчетчикЦикла = 0;
	Для СчетчикЦикла = 2 По Ном1 Цикл
		ГдеИщем=Сред(ГдеИщем,Поз+1,СтрДлина(ГдеИщем)-Поз);
		Поз=Найти(ГдеИщем,Р);
		Если (Поз = 0) Тогда Возврат ГдеИщем;КонецЕсли;
		Стр=Лев(ГдеИщем,Поз-1);
		Если Ном1 = СчетчикЦикла Тогда Возврат Стр;КонецЕсли;
	КонецЦикла;
КонецФункции // ПолучитьСтр()

Пример использования:

НужнаяСтрока = "1С,PHP,Delphi,HTML,CSS";
Сообщить(ПолучитьСтр(НужнаяСтрока, 3, ","));

В окно служебных сообщений будет выведена подстрока «Delphi». Чтобы посмотреть как работает эта функция вы можете скачать внешнюю обработку здесь.

Пример работы функции ПолучитьСтр() в обработке 1С8

Посмотрите как реализована работа такой же функции в 1С 7.7.

Как проверить существует ли реквизит справочника 1с8?

СтатьяЗатрат.Метаданные().Реквизиты.Найти("ПринятиеКНалоговомуУчету") <> Неопределено

Как перебрать субконто счёта?

Процедура ПолучитьСубконтоСчета(Счет)
	ВидыСубконто = Счет.ВидыСубконто;
	Для Каждого ВидСубконто Из ВидыСубконто Цикл
		Сообщить(ВидСубконто.ВидСубконто);
	КонецЦикла;
КонецПроцедуры

Как устранить ошибку: Тип не является подмножеством типа значений плана видов характеристик?

При попытке перенести данные из одной базы в другую возникла ошибка:

Ошибка при установке значения атрибута контекста (ТипЗначения): 
Тип не является подмножеством типа значений плана видов характеристик

Не переносилось число с длиной 18 и точностью 6 (18.6) из базы источника, так как было установлена длина 15, точность 3 (15.3) в базе приемнике. Чтобы решить данную проблему, нужно в текущем плане видов характеристик изменить длину и точность с 15.3 на 18.6 в диалоге редактирования типа данных.


ПОДПИСКА

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account

Closed

artbear opened this issue

Jun 22, 2018

· 1 comment

Comments

@artbear

Встретилась на УПП, обычные формы, у обучаемых

22.06.2018 12:08:12 {ВнешняяОбработка.СериализаторMXL.МодульОбъекта(1333)}: 
Ошибка при вызове метода контекста (ЗаполнитьЗначенияСвойств): 
Ошибка установки значения свойства 'ТипЗначения': 
Тип не является подмножеством типа значений плана видов характеристик; 
ИмяФайла=addfeatureslibrariesМакетыstep_definitionsСозданиеFixturesПоМакетуОбработкиФичи.epf, 
ИмяПроцедуры=ЯСоздаюFixturesПоМакету, версия VB=vanessa-behavior ver 5.1.1.0

artbear

added a commit
that referenced
this issue

Jun 25, 2018

@artbear

artbear

added a commit
that referenced
this issue

Jun 26, 2018

@artbear

…выгрузка и загрузка предопределенных элементов и/или групп fix #203

artbear

added a commit
that referenced
this issue

Jun 26, 2018

@artbear

artbear

added a commit
that referenced
this issue

Jun 26, 2018

@artbear

artbear

added a commit
that referenced
this issue

Jun 26, 2018

@artbear

@artbear



Copy link


Collaborator


Author

artbear

added a commit
that referenced
this issue

Jun 26, 2018

@artbear

…#203

Добавил расширенное сообщение об ошибке, когда возможно у пользователя не хватает прав на создание нового пустого элемента #205

1 participant

@artbear

Доброго времени суток! При обновлении конфы бух 2.0 на 3.0 столкнулся с некоторыми проблемами. Одна из них решилась чисткой РегистраСведений ОтложенныеДвиженияДокументов (не получалось обновить конфигурацию базы данных, кнопка принятия изменений была неактивной). Сейчас обновилось, в конфигуратор заходит, при запуске Предприятия выдает окно Легальности получения обновлений, дале пытается произвести информационной базы…и…. Платформа: 1С:Предприятие 8.2 (8.2.17.153) Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.18.5) ( Copyright (С) ООО «1C», 2010 — 2012. Все права защищены ( Режим: Файловый (без сжатия) Ошибки: ——————————————————————————— 27.01.2013 23:33:27 {ОбщийМодуль.ОбновлениеИнформационнойБазыКлиент.Модуль}: При обновлении информационной базы возникла ошибка: Тип не является подмножеством типа значений плана видов характеристик Подробности см. в Журнале регистрации. Если кто знает или есть догадки, пожалуйста подскажите. Буду признателен всем за любую помощь.

Еще один момент-работаю с реальной базой клиента. Если все делать на чистой 2.0, обновляется на 3.0 без проблем.

смотри что нахреначили в план видов характеристик.. небось измененная база то? своих субконто нафигачили?

делал сравнение, нихрена нет, буду конечно еще смотреть, но думаю с шестого раза просмотра не поменяется ничего.

ты в пользовательском режиме глянь чо там нафигачили…

IamAlexy, ткни пожалуйста носом куда смотреть и что должно быть.

в планах все чято есть, является предопределенными объктами

рабочая на поддержке? типы субконто не изменены?

на поддержке, Господи Боже мой, теперь     Тип не является подмножеством типа значений плана видов характеристик шо занах О_О

накатываю сверху 3_0_18_5

думаю тут или у меня руки кривые,или у бухгалтера =)

Я больше склоняюсь к тому, чтобы поставить чистую бух 3 и  пусть бухи сами ручками вносят остатки. Хороший вариант?

Бухгалтер — экстремал? Может им для начала все же баланс сдать, а потом уже переходить на новую систему? Тем более там и осталось-то подождать.

Тоже самое сказал им, у них стоит еще торговля 10.3, и настроен односторонний обмен УТ-БП. Документы выгружает, но не проводит, вообще выгрузка криво шла, пока я правила не изменил , добавил дату начала выгрузки. Иначе у них все документы одному Нуралию известно как проводились и перепроводились. Кто-то подсказал что в 11 УТ и БП 3.0 все идеально гладко. На 11 перевел их, а обмен есть, но нет, нужно им 3.0 поставить и все тебе..

Поставлю им 7.7, вот удивятся О_О

Гыгыгы. Вот ребята попали походу… Отличный вариант. Особенно всякоразное для учета НДС руками введется отлично.

Будут знать в следующий раз как нанимать неопытного бухгалтера.

Спасибо всем кто принимал участие и за помощь :) Особенно IamAlexy. Думаю тему можно закрывать.

Будет им счастье на УТ 11 и БП 2.0

в новогодние переводил — проблем небыло. причем переводил адскую переписку… видимо чото накосячили в новых релизах.. хз

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

  • Ошибка при загрузке данных тип не определен учетная политика организации
  • Ошибка при загрузке данных тип не определен регистрсведенийзапись учетнаяполитикаорганизаций
  • Ошибка при загрузке данных ошибка записи объекта
  • Ошибка при загрузке данных ошибка доступа к файлу
  • Ошибка при загрузке данных игрока warface