|
Запрос по видам(типам) метаданных (справочники и документы) | ☑ | ||
---|---|---|---|---|
0
ivangrant
24.04.19
✎
07:12
|
Создаю внешнуюю обработку.
Как можно настроить по нажатию на кнопки, чтобы отдельно выгрузились нужные Справочники,либо отдельно нужные Документы? |
|||
1
Мимохожий Однако
24.04.19
✎
07:17
|
Краткость-сестра Таланта. Но не всегда.
|
|||
2
Jonny_Khomich
24.04.19
✎
07:38
|
в 1с встроена процедура ВыгрузиПожалуйстаНужныеСправочникиЛибоДокументы()
|
|||
3
catena
24.04.19
✎
07:41
|
Как связана тема и вопрос?
|
|||
4
Автосервис
24.04.19
✎
07:51
|
(0) Жмешь на кнопку "Настроить", добавляешь префиксы и жмешь на кнопку "Выгрузить"
P.S. Какой вопрос, такой и ответ XD |
|||
5
ivangrant
24.04.19
✎
08:35
|
Такое вообще возможно?
По коду обработка не работает. [code] Запрос=Новый Запрос; Текст=""; Для Каждого Документ Из Метаданные.Документы Цикл Текст=Текст+"ВЫБРАТЬ Ссылка ИЗ Документ."+Документ.Имя+" ОБЪЕДИНИТЬ "; КонецЦикла; Запрос.Текст=Лев(Текст,СтрДлина(Текст)-СтрДлина(" ОБЪЕДИНИТЬ ")); Выборка=Запрос.Выполнить().Выбрать(); [/code] |
|||
6
catena
24.04.19
✎
08:40
|
(5)"Не работает" как? Бастует? Пишет чего или в молчанку играет?
|
|||
7
ivangrant
24.04.19
✎
08:51
|
(6)
Дописал код. Но отладчик проходит по всем документам. Но не их типам. Нужно, чтобы выборка была только по типам документов. [code] &НаСервере Процедура ЗаполнитьДокументыНаСервере() Запрос=Новый Запрос; Текст=""; Для Каждого Документ Из Метаданные.Документы Цикл Текст=Текст+"ВЫБРАТЬ Ссылка ИЗ Документ."+Документ.Имя+" ОБЪЕДИНИТЬ "; КонецЦикла; Запрос.Текст=Лев(Текст,СтрДлина(Текст)-СтрДлина(" ОБЪЕДИНИТЬ ")); Выборка=Запрос.Выполнить().Выбрать(); Объект.Список.Очистить(); Пока Выборка.Следующий() Цикл Список_ = Объект.Список.Добавить(); Список_.НаименованиеОбъекта = Документ.Имя; Список_.ТипОбъекта = Документ.ТипОбъекта; КонецЦикла; КонецПроцедуры [/code] |
|||
8
Serg_1960
24.04.19
✎
09:02
|
"Нужно, чтобы выборка была только по типам документов."
Сколько ни повторяй "халва" во рту слаще не станет. Пока на примере не объясните что Вы в результате хотите получить - Вы обречены на монолог. |
|||
9
НЕА123
24.04.19
✎
09:02
|
>Нужно, чтобы выборка была только по типам документов
делай. |
|||
10
ivangrant
24.04.19
✎
09:07
|
(8)
Есть список документов: РасходнаяНакладаня ПриходнаяНакладная Сборка и т.д. Есть список справочников: Склады Номенклатура и т.д. Создаю внешнюю обработку, в список которой можно было загрузить по нажатию на кнопку "Загрузить Документы" или другую кнопку "Загрузить Справочники", после чего в табличную часть добавляются список Документов: РасходнаяНакладная, ПриходнаяНакладная. Далее нажимаем кнопку "Добавить Префикс", и в код всех документов РасходнаяНакладная добавляется префикс. ____ Соответственно нужно запросом выбирать необходимые типы Документов: например только РасходнаяНакладная, или ПриходнаяНакладная и добавлять префиксы. |
|||
11
Йохохо
24.04.19
✎
09:12
|
УниверсальныеПодборИОбработкаОбъектов.epf возьми с итс
|
|||
12
ivangrant
24.04.19
✎
09:26
|
(11) Он есть у меня. Заказчику не нравится)) очень много документов приходится обрабатывать, поэтому нужен более простой вариант.
Код для замены Префикса я оттуда возьму. Но как выбирать из нужно списка Документы или Справочники - остаётся большим вопросом. |
|||
13
Serg_1960
24.04.19
✎
09:44
|
Бедный, бедный Ваш "заказчик" - как ему крупно не повезло :)
Если я Вас правильно понял: Объект.Список.Очистить(); Для Каждого Документ Из Метаданные.Документы Цикл Запрос = Новый Запрос("ВЫБРАТЬ КОЛИЧЕСТВО(ТекДок.Ссылка) КАК Количество ИЗ Документ." + Документ.Имя + " КАК ТекДок"); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Если Выборка.Количество > 0 Тогда Строка = Объект.Список.Добавить; Строка.НаименованиеОбъекта = Документ.Имя; Строка.ТипОбъекта = Документ.ТипОбъекта; КонецЕсли; КонецЦикла; |
|||
14
ivangrant
24.04.19
✎
10:03
|
(13) ну вы тоже не сразу ходить начали)
_____ Спасибо за подсказку. Но ваш код не выводит данные в таблицу. У меня немного покороче, но тоже пустая табличная часть :( Для Каждого Документ Из Метаданные.Документы Цикл Список_ = Объект.Список.Добавить(); Список_.НаименованиеОбъекта = Метаданные.Документы; КонецЦикла; |
|||
15
_Дайвер_
24.04.19
✎
10:53
|
(14) Отладчик для кого придумали!?
Для Каждого Документ Из Метаданные.Документы Цикл НоваяСтрока = Объект.Список.Добавить(); НоваяСтрока.НаименованиеОбъекта = Документ.Имя; КонецЦикла; |
|||
16
ivangrant
24.04.19
✎
11:03
|
(15) так я при помощи отладчика и делал))
У меня немного подругому итог получился. &НаСервере Процедура ЗаполнитьДокументыНаСервере() Для Каждого Документ Из Метаданные.Документы Цикл Список_ = Объект.Список.Добавить(); Список_.НаименованиеОбъекта = Документ; КонецЦикла; КонецПроцедуры Теперь вопрос: можно ли запросом определить нужные типы документов для выгрузки (некий програмный фильтр) ? |
|||
17
hhhh
24.04.19
✎
11:27
|
(16) так вы же уже делаете в (5)
|
|||
18
ivangrant
24.04.19
✎
11:33
|
(17) Пробовал. Этот запрос полностью отбирает все документы. Но не выборочно.
|
|||
19
catena
24.04.19
✎
11:36
|
(18)Ну так добавьте туда условие.
|
|||
20
Rie
24.04.19
✎
11:38
|
(17) А что такое "нужные документы"? Где хранится их список?
|
|||
21
Garykom
гуру
24.04.19
✎
11:42
|
А запросы по текстам/коду модулей конфы еще нельзя делать?
|
|||
22
ivangrant
24.04.19
✎
12:23
|
(19) а вот здесь проблема. Не могу добавить условие без отдельно выбранных документов. Конструктор запроса не даёт так сделать.
(20) еслть например типы документов: расходные накладные, приходные накладные, заказ поставщика и т.д. То нужные документы - это выборочные типы документов (например, только Заказ Поставщика и Расходнаые Накладные). (21) ого! А это как? Чего то в нете не могу примерова найти :( |
|||
23
Rie
24.04.19
✎
12:27
|
(22) "Выборочные" - это прекрасно. Где хранится этот список выбранных, кроме как в межушной нейросети?
Циклы в вышеприведенном коде выбирали вообще _все_ виды документов - и включали их в запрос. Если включать в запрос только выбранные виды документов (обходя не метаданные, а тот список, где эти выбранные хранятся), то может наступить счастье. |
|||
24
catena
24.04.19
✎
12:40
|
(22)Чего?
Выбирай не из всех метаданных, а из массива выбранных. |
|||
25
ivangrant
24.04.19
✎
13:28
|
(24)
Что-то типа такого? &НаСервере Функция МассивИменРеквизитовОбъекта(Объект) МассивИменРеквизитов = Новый Массив; МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипЗнч(Объект)); Для индекс = 0 по 1 Цикл КоллекцияРеквизитов = ?(индекс=0, МетаданныеОбъекта.СтандартныеРеквизиты, МетаданныеОбъекта.Реквизиты); Для каждого Реквизит из КоллекцияРеквизитов Цикл МассивИменРеквизитов.Добавить(Реквизит.Имя); КонецЦикла; КонецЦикла; Для Каждого ТабличнаяЧасть Из Объект.Метаданные().ТабличныеЧасти Цикл Для Каждого РеквизитТЧ ИЗ ТабличнаяЧасть.Реквизиты Цикл МассивИменРеквизитов.Добавить(РеквизитТЧ.Имя); Сообщить(" - " + РеквизитТЧ.Имя); КонецЦикла; КонецЦикла; Возврат МассивИменРеквизитов; КонецФункции |
|||
26
hhhh
24.04.19
✎
13:37
|
(25) нет,метаданные вам не нужны. Типа
МассивВыбранных = Новый Массив; МассивВыбранных.Добавить("ПриходнаяНакладная"); МассивВыбранных.Добавить("РасходнаяНакладная"); |
|||
27
ivangrant
24.04.19
✎
13:54
|
(26) Точно!! )
Но это же получсется строковое значение. В смысле, к самим документам не имеет отношения, кроме как названия. Соответственно, далее я не смогу, в выбранных документах через массив, поменять префиксы. Или я ошибаюсь? |
|||
28
Rie
24.04.19
✎
14:22
|
(27) Далее на основании этого построите запрос похожий на (7), который выдаст кучу ссылок на документы, при помощи которых получите объекты документов, в которых поменяете префиксы.
|
|||
29
DrWatson
24.04.19
✎
14:40
|
(27) У Вас в (7) есть первый цикл который перебирает все документы. Примените этот цикл лучше для заполнения списка значений, который будет выводится на форме и пользователь поставит в нем галки. Вот это и будут те самые "выбранные". В (7) же цикл по всем метаданным заменить на обход этого списка с проверкой галки.
|
|||
30
ivangrant
24.04.19
✎
15:11
|
(29)
[quote] Примените этот цикл лучше для заполнения списка значений, который будет выводится на форме и пользователь поставит в нем галки. [/quote] Не не не. Только не галки ((( Там свыше 30 документов и справочников, устанут щёлкать. |
|||
31
ivangrant
24.04.19
✎
15:27
|
В общем наковырял я что-то с базой и обработкой. Теперь в справочнике Склады, при создании нового склада, код начинается с префикса уже изменённых складов.
Где искать заковыку? Это значит обработка что-то переписала у меня в базе? |
|||
32
DrWatson
24.04.19
✎
15:47
|
(30) А в чем тогда смысл этих "нужных" справочников и документов?
Если их список фиксированный, заранее известный, то можно и запрос сразу готовый прописать, а не формировать его по метаданным. Если нужно чтобы пользователь мог выбирать что ему нужно в данный момент, то список хороший простой вариант (удобнее будет дерево). Надо было написать как должна выглядеть обработка сточки зрения заказчика/пользователя. |
|||
33
ivangrant
24.04.19
✎
15:57
|
(32) Да там сам клиент не знает, как должна выглядеть.
По факту должна быть обработка с визуальной частью - где выводился список всех типов документов нужных. ТЕОРЕТИЧЕСКИ, можно и без этого. С одной кнопкой: "Обновить Префиксы". Но я пока сообразил только на первый вариант ) Со списком и галкам есть уже готовые обработки на ИнфоСтарте. Они точно не подходят + там их покупать надо, а учетка не из дешёвых( |
|||
34
DrWatson
24.04.19
✎
16:05
|
(33) В любом случае перед тем как что-то делать нужно представить как это должно выглядеть.
Вывелся список типов на форме и что дальше, зачем он там нужен? (31) Вероятно она коды элементов и переписала. Достаточно один раз забить номер больше текущего, чтобы нумератор его запомнил и выдавал дальше номера от этого номера. Номера с "префиксами" есть с справочнике складов? |
|||
35
ivangrant
25.04.19
✎
06:38
|
(34) "Номера с "префиксами" есть с справочнике складов?"
А где это посмотреть? В Предприятии они с новыми кодаим идут, и если новый склад создаю, то тоже у же с новым кодом (добавленный префикс) идут. |
|||
36
catena
25.04.19
✎
06:44
|
(35)Платформа при формировании нового номера берет максимальный номер и увеличивает на 1. Если префиксации не прописано при создании, то префикс по правилам сортировки строк будет во всех следующих номерах.
|
|||
37
ivangrant
25.04.19
✎
07:24
|
(36) спасибо. Теперь понятно.
|
|||
38
ivangrant
26.04.19
✎
11:55
|
Итак, сейчас в ТЧ заполняются названия типов документов и справочников.
Но я так понимаю, что это строковые значения, верно? Как мне определить изменение префикса только у типов документов с этим названием? &НаСервере Процедура ЗаполнитьДокументыНаСервере() //для Документов Объект.Список.Очистить(); //Задать список документов для отображения МассивВыбранных = Новый Массив; МассивВыбранных.Добавить("ПриходнаяНакладная"); МассивВыбранных.Добавить("РасходнаяНакладная"); //вывести в табличную часть список документов Для Каждого Документ Из МассивВыбранных Цикл СписокДокумент_ = Объект.Список.Добавить(); СписокДокумент_.НаименованиеОбъекта = Документ; КонецЦикла; КонецПроцедуры &НаКлиенте Процедура ЗаполнитьДокументы(Команда) //для Документов ЗаполнитьДокументыНаСервере(); КонецПроцедуры &НаСервере Процедура ЗаполнитьСправочникиНаСервере() //для Справочников Объект.Список.Очистить(); //Задать список справочников для отображения МассивВыбранных = Новый Массив; МассивВыбранных.Добавить("Склады"); МассивВыбранных.Добавить("ХЗ"); //вывести в табличную часть список справочников Для Каждого Справочник Из МассивВыбранных Цикл СписокСправочник_ = Объект.Список.Добавить(); СписокСправочник_.НаименованиеОбъекта = Справочник; КонецЦикла; КонецПроцедуры &НаКлиенте Процедура ЗаполнитьСправочники(Команда) //для Справочников ЗаполнитьСправочникиНаСервере(); КонецПроцедуры |
|||
39
Simod
26.04.19
✎
11:59
|
(38) Посмотри как в типовых это реализовано с помощью подписки на событие с наименованием типа "ПриУстановкеНовогоНомераДокумента".
|
|||
40
ivangrant
26.04.19
✎
12:00
|
(39) у меня нет доступа к типовым.
|
|||
41
ivangrant
26.04.19
✎
12:01
|
(39) Есть УниверсальныеПодборИОбработкаОбъектов.epf
Но там в коде ничего не понятно. Всё подругому сделано. |
|||
42
Мимохожий Однако
26.04.19
✎
12:15
|
(41) "Но там в коде ничего не понятно". Читай код и много думай.
(40) Да, ладно. |
|||
43
ivangrant
26.04.19
✎
12:50
|
(42) если для меня написанный в обработке код - пока иероглифы, чего мне на них смотреть и думать. Надо нужную статью в инструкции, справке, книжке открыть. Знать бы какую.
|
|||
44
ivangrant
26.04.19
✎
13:02
|
Если мне нужно все типы справочников вывести, что надо написать вместо Метаданные ?
&НаСервере Процедура ЗаполнитьДокументыНаСервере() Для Каждого Документ Из Метаданные.Документы Цикл Список_ = Объект.Список.Добавить(); Список_.НаименованиеОбъекта = Документ; КонецЦикла; КонецПроцедуры |
|||
45
ivangrant
26.04.19
✎
13:05
|
(44) Получилось, но сначала в конфигураторе не подставлялось значение Справочники после точки и слова Метаданные.
|
|||
46
ivangrant
26.04.19
✎
13:58
|
Как получить префикс документа по его типу?
|
|||
47
ivangrant
26.04.19
✎
14:12
|
Нашёл код в другом обработчике.
Есть там вот такой. Но через синтакс-помощник не бьётся ни одно слово. Функция ПолучитьПрефиксЧислоНомера(Знач Стр, ЧисловаяЧасть="", Режим="") Экспорт Стр = СокрЛП(Стр); Префикс = Стр; Длина = СтрДлина(Стр); Для Сч = 1 По Длина Цикл Попытка ЧисловаяЧасть = Число(Стр); Исключение Стр = Прав(Стр, Длина - Сч); Продолжить; КонецПопытки; Если (ЧисловаяЧасть > 0) И (СтрДлина(Формат(ЧисловаяЧасть, "ЧГ=0")) = Длина - Сч + 1) Тогда Префикс = Лев(Префикс, Сч - 1); Пока Прав(Префикс, 1) = "0" Цикл Префикс = Лев(Префикс, СтрДлина(Префикс)-1); КонецЦикла; Прервать; Иначе Стр = Прав(Стр, Длина - Сч); КонецЕсли; Если ЧисловаяЧасть < 0 Тогда ЧисловаяЧасть = - ЧисловаяЧасть КонецЕсли; КонецЦикла; Если Режим = "Число" Тогда Возврат(ЧисловаяЧасть); Иначе Возврат(Префикс); КонецЕсли; КонецФункции // вПолучитьПрефиксЧислоНомера() |
|||
48
catena
29.04.19
✎
05:13
|
(47)Какое именно слово тут не находится в СП?
|
|||
49
Garykom
гуру
29.04.19
✎
05:52
|
(48) У него нет нужной версии СП устаревшей
|
|||
50
ivangrant
29.04.19
✎
07:20
|
(48) Например: Стр. Или: ПолучитьПрефиксЧислоНомера
(49) Какую нужно? Как это понять? Платформа 1С:Предприятие 8.3 (8.3.14.1630). А нужна какая? |
|||
51
Garykom
гуру
29.04.19
✎
07:28
|
(50) >Например: Стр. Или: ПолучитьПрефиксЧислоНомера
Троллишь? Это имя переменной и имя функции, с чего они будут в СП. |
|||
52
Конструктор1С
29.04.19
✎
07:36
|
Ctrl+F1
|
|||
53
ivangrant
29.04.19
✎
08:01
|
(51) Нет.
При обучении название функции указывали из СП. Поэтому и вопрос. Тогда непонятно, зачем в скобках прописаны неизвестные параметры, если значения к ним не указаны. Среди них - Стр. Если это перем., тогда непонятно действие ей в скобках и в теле функции. Например: Стр = СокрЛП(Стр); Префикс = Стр; Длина = СтрДлина(Стр); Для перем Стр данные откуда-то же берутся. Откуда? В других частях кода этой перем. нет. |
|||
54
catena
29.04.19
✎
08:06
|
"При обучении название функции указывали из СП"
Ты врешь, функции, описанные в СП уже есть и писать их заново смысла не имеет. В скобках указываются входящие параметры. Вопрос: что вообще в целом о программировании вы знаете? Не в 1С, а в принципе? |
|||
55
Rie
29.04.19
✎
08:06
|
(53) Мне кажется, что Вы троллите.
Даже по синтаксису ясно, что Стр - это переменная. Откуда данные берутся? Ищите в коде. Тщательнее ищите. О параметрах процедур и функций не забывайте при поиске. Извините, но может Вам лучше не самому это писать, а нанять программиста? |
|||
56
Мимохожий Однако
29.04.19
✎
08:19
|
(43) Это лентяйство и нежелание думать.ИМХО.
Надежды на универсальные рецепты тщетны. |
|||
57
ivangrant
29.04.19
✎
14:37
|
Как определить тип метаданных?
Пытаюсь задать перем. ТИпОбъекта. И КоллекцияОбъектовМетаданных, и ОбъектМетаданныхКофнигурация, и Метаданные.Имя - не помогает. Отладчиком напрашивается КоллекцияОбъектовМетаданных. Но пишет, что переменная не определан))) Уже смешно. Функция ОпределитьТипИДлинуНомера() ТипОбъекта = Метаданные ??? Если ТипОбъекта = Метаданные.Документы Тогда ТипНомера = Строка(Метаданные.Документы.ТипНомера); ДлинаНомера = Метаданные.Документы.ДлинаНомера; ИначеЕсли ТипОбъекта = Метаданные.Справочники Тогда ТипНомера = Строка(Метаданные.Справочники.ТипКода); ДлинаНомера = Метаданные.Справочники.ДлинаКода; КонецЕсли; КонецФункции |
|||
58
Rie
29.04.19
✎
14:58
|
(57) ......Допустим, что у Вас в переменной с именем Объект лежит ссылка на некий объект базы данных (например, документ).
Тогда МетаОбъект = Объект.Метаданные(); ДлинаНомера = МетаОбъект.ДлинаНомера; ТипНомера = МетаОбъект.ТипНомера; // посмотрите в Справке, какой тип у этого свойства! Если известен вид документа (например, "ПоступлениеТоваровУслуг"), то можете узнать нужное прямо из глобального контекста: ДлинаНомера = Метаданные.Документы.ПоступлениеТоварвУслуг.ДлинаНомера; или же (так, скорее всего, будет удобнее) ДлинаНомера = Метаданные.Документы["ПоступлениеТоваровУслуг"].ДлинаНомера; Всё же советую не бежать впереди паровоза, а потратить некоторое время и изучить хоть немного встроенный язык программирования 1С. |
|||
59
ivangrant
29.04.19
✎
15:10
|
(58) да тут вопрос в том, что мне кажется, что мы на разных языках говорим))) спасибо за советы конечно.
Но. Мне нужно вывести ТИПЫ документов, не ссылки на них, а ТИПЫ. РасходнаяНакладная ПриходнаяНакладная это всё ТИПЫ документов. Вот мне и нужно "сказать" системе, что это ДОКУМЕНТЫ. Вот ссылка на внешний вид обработчика -> https://yadi.sk/i/2C5AQuIvi-U7fw Отладчиком уже всё возможное наверное излазил. К самим документам я нашёл путь. А вот как определить метаданные Справочник или Документы - с этим проблема. |
|||
60
RomanYS
29.04.19
✎
15:16
|
ЭтоДокумент = Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(Ссылка));
|
|||
61
PR
29.04.19
✎
15:17
|
(0) Я бы переключателем сделал
|
|||
62
RomanYS
29.04.19
✎
15:17
|
+(60) или через метаданные
ЭтоДокумент = Метаданные.Документы.Содержит(Объект.Метаданные()); |
|||
63
ivangrant
29.04.19
✎
15:20
|
(60) это подходит, если мне нужны только типы документов.
Но отдельным списком идут Справочники. Поэтому определение перем. ЭтоДокумент не логично. |
|||
64
ivangrant
29.04.19
✎
15:20
|
(61) это как?
|
|||
65
ivangrant
29.04.19
✎
15:21
|
(60) + на ссылку ругается. Нет их у меня.
|
|||
66
RomanYS
29.04.19
✎
15:25
|
(63) У справочника те же методы. Сделай логично, инструмент есть.
(65) Это лишь пример. Замени (правильно) на то , что есть у тебя. |
|||
67
PR
29.04.19
✎
15:31
|
(64) Ну булево на форму
|
|||
68
ivangrant
29.04.19
✎
15:31
|
(66) да, уже попробовал.
Пишет: недостаточно фактических параметров. На вторую строчку ругается. Функция ОпределитьТипИДлинуНомера() ТипОбъекта = Метаданные.НайтиПоТипу().СодержитТип(ТипЗнч(Объект)); Если ТипОбъекта = Метаданные.Документы Тогда ТипНомера = Строка(Метаданные.Документы.ТипНомера); ДлинаНомера = Метаданные.Документы.ДлинаНомера; ИначеЕсли ТипОбъекта = Метаданные.Справочники Тогда ТипНомера = Строка(Метаданные.Справочники.ТипКода); ДлинаНомера = Метаданные.Справочники.ДлинаКода; КонецЕсли; КонецФункции // () |
|||
69
ivangrant
29.04.19
✎
15:32
|
(67) так прицепил же. Первая колонка. Флажки выставлять можно над каждым типом документа.
|
|||
70
PR
29.04.19
✎
15:46
|
(69) Молодец. Делай дальше.
|
|||
71
RomanYS
29.04.19
✎
15:46
|
(68) ппц. Ты код наугад пишешь?
>>Пишет: недостаточно фактических параметров. На вторую строчку ругается. Это неспроста - там как минимум ошибка. По факту в той строке полный бред |
|||
72
ivangrant
29.04.19
✎
15:57
|
(71) ага. Задачу дали, опыта нет. Никто не помогает. Сижу ищу в интернете. Почти наугад получается ) Что на форумах нахожу, то и пробую. Ну потому что все знающие варианты я испробовал)
Строку с ошибкой, кстати, вытащил с этого же форума. Кто-то подсказывал по подобно му вопросу. |
|||
73
RomanYS
29.04.19
✎
16:07
|
(72) Очень похоже не обезьяну, которая войну и мир пишет. Но у тебя шансов побольше будет, не унывай
|
|||
74
Rie
29.04.19
✎
19:27
|
(59) А зачем Вам нужны _типы_? Что Вы с этими _типами_ дальше делать собираетесь?
Вот посмотрите на свой код в (68). У Вас есть некий Объект. (Кстати, откуда он есть? В параметрах функции его как-то не заметно). Если у Вас есть этот Объект, то МетаданныеОбъекта = Объект.Метаданные(); Если Метаданные.Документы.Содержит(МетаданныеОбъекта) Тогда ДлинаНомера = МетаданныеОбъекта.ДлинаНомера; ИначеЕсли Метаданные.Справочники.Содержит(МетаданныеОбъекта) Тогда ДлинаНомера = МетаданныеОбъекта.ДлинаКода; КонецЕсли; Да, кстати! Если у Вас - функция, то неплохо было бы и значение какое-нибудь вернуть... Перестаньте дурью маяться! Учите встроенный язык! |
|||
75
ivangrant
30.04.19
✎
07:20
|
(73) спасибо)))))
(74) не Объект, а ТипОбъекта. Эта перем., к. нужна будет дальше в коде. И куда у вас делся ТипНомера ? Ну и не работает все равно. {Обработка.ВнешняяОбработкаПрефиксов.Форма.Форма.Форма(52)}: Метод объекта не обнаружен (Метаданные) МетаданныеОбъекта = Объект.Метаданные(); |
|||
76
END
30.04.19
✎
08:20
|
О, вот это да! Вас чувак развел, что бы вы ему его работу сделали. Чувак, зарплату на всех делить будешь?
|
|||
77
ivangrant
30.04.19
✎
08:27
|
(76) ну это только в сказках, которые пишут на форуме, что пришёл в компанию со стажировки и сразу начали з/п платить))))
Вижу, что так не работает. И помощи на форуме не дождёшься. |
|||
78
END
30.04.19
✎
08:58
|
(77) Тебе достаточно помогли. Тебе разжевали как и что нужно сделать. Код за тебя никто писать не собирается. Читай справку, читай буквари - делай. Или полати деньги и покупай готовое решение, раз сам не можешь сделать.
|
|||
79
Simod
30.04.19
✎
10:52
|
(77) Может все таки начать с примеров типа
изучить типы и структуру объектов системы, поработать с примитивными типами, справочниками и т.д. затем посложнее - документы, регистры. И только потом переходить на работу с объектами через метаданные? Программированию по примерам из Гугола не научишься. |
|||
80
Simod
30.04.19
✎
10:53
|
И да, я не верю, что пришел на стажировку и сразу дали такой пример.
|
|||
81
Demon_MSK
30.04.19
✎
15:58
|
(80) Вай??
Вполне норм для стажёра. Который НЕ прогуливал занятия, и НЕ покупал зачетов. У меня в разное время два стажёра было. Один учился. Второй нет. Первый таки задачки решал легко. Второй - охранником работает. (77) Между прочим вам помогли. Жевать за вас никто не собирается. Работа стоит денег. Более-менее красивое решение. Делаем две таблички с флажками, доки и спр. Туда при заполнении выбираем нужное. Можно на разных закладках. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |