Вопрос № 128460: вопрос касательно 1cv8
в 1с есть поле Код, но на сколько я знаю оно не является уникальным для справочника.
Есть ли в 1с какой нибудь сквозной код, который непосредственно дентифицирует строку в справочнике.
и если есть то ка...Вопрос № 128481: У меня в документе Заказ 1С7.7 именился алгоритм расчета стоимости. Процедура РасчетСтоимости() находится в модуле формы, кнопка вызова в диалоге формы документа. Вопрос: Как мне из внешней обработки выбрать 2000 документов, пересчитать стоимость зак...Вопрос № 128501: Дайте, плиз, ДемоБазу к 1С:Предприятию 8.1...
Вопрос № 128.460
вопрос касательно 1cv8
в 1с есть поле Код, но на сколько я знаю оно не является уникальным для справочника.
Есть ли в 1с какой нибудь сквозной код, который непосредственно дентифицирует строку в справочнике.
и если есть то как к нему добраться.
Отправлен: 21.03.2008, 18:39
Вопрос задал: Кэр Лаэда (статус: Практикант)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 5)
Отвечает: Брагар Сергей Владимирович
Привет Антоха. Для справочника код такой же уникальный как и для всех остальных объектов метаданных. Для контроля уникальности ставится галочка в «Контроль уникальности»
Ответ отправил: Брагар Сергей Владимирович (статус: 1-ый класс)
Ответ отправлен: 21.03.2008, 19:00 Оценка за ответ: 3 Комментарий оценки: Не знаю кто такой Антоха, но если в 1с есть возможность отменить контроль уникальности значит все таки 1с как то может обращаться к каждой записи даже при отключенном контроле уникальности, вот меня интересует вопрос как добраться до этого поля с уникальным кодом.. программно
Отвечает: Яна
Здравствуйте, Кэр Лаэда!
У всех объектов в базе есть поле Ссылка, в нем хранится уникальный id, увидеть его можно, выгрузив объект в xml.
Ответ отправила: Яна (статус: Практикант)
Ответ отправлен: 21.03.2008, 21:26 Оценка за ответ: 4 Комментарий оценки: Уже близко, однако мне нужно программно
Отвечает: Вильгоненко Станислав Викторович
Здравствуйте, Кэр Лаэда!
Может вы имеете ввиду метод элемента справочника: "ПолныйКод"? Он возвращает путь к элементу со всеми уровнями.
Ответ отправил: Вильгоненко Станислав Викторович (статус: 2-ой класс)
Ответ отправлен: 22.03.2008, 09:51 Оценка за ответ: 5 Комментарий оценки: Очень даже может быть.. попробую
Отвечает: Дмитрий Сташенко
Здравствуйте, Кэр Лаэда!
А может помогут процедуры ЗначениеВСтрокуВнутр() и ЗначениеИзСтрокиВнутр()?
ЗначениеВСтрокуВнутр(>);
Синтаксис:
ЗначениеВСтрокуВнутр(<Объект>)
Назначение:
Преобразование значения объекта агрегатного типа в строковое системное представление.
Возвращает: представление значения объекта в строковом системном виде.
Параметры:
<Объект> - значение объекта агрегатного типа данных которое нужно преобразовать.
ЗначениеВСтрокуВнутр(ТекущийЭлемент()) вернет строку что-то типа {"B","0","0","289","0","0"," 7732 "}
ЗначениеИзСтрокиВнутр() - соответственно, обратное преобразование, то есть если вызвать ЗначениеИзСтрокиВнутр("{"+"""B"""+","+"""0"""+","+"""0"""+","+"""289"""+","+"""0"""+","+"""0"""+","+""" 7732 """+"}"), то получим ссылку
на тот же элемент. Как видите, тут пришлось "склеить" строку представления по кусочкам, так как мало того, что сама строка должна быть заключена в кавычки, так и строка содержит кавычки и запятые. Поэтому пришлось извратиться. В приложении все просто, так как переменной Пер присваивается результат ЗначениеИзСтрокиВнутр. А вот если переменной Пер присваивать текстовое значение, то тогда мы бы так и написали: Пер = "{"+"""B""&qu
ot;+","+"""0"""+","+"""0"""+","+"""289"""+","+"""0"""+","+"""0"""+","+""" 7732 """+"}";
Вот вроде и все. Удачи
Приложение:
Ответ отправил: Дмитрий Сташенко (статус: Студент)
Ответ отправлен: 22.03.2008, 12:28 Оценка за ответ: 5 Комментарий оценки: спасибо попробую
Отвечает: Larsh
Здравствуйте, Кэр Лаэда!
Каждому справочнику соответствует таблица ДБФ (Это я про 7.7) там есть поле ID Каждому элементу справочника слоответствует свой ID. При помощи "ВСтрокуВнутр" мы и получаем это значение,если база нераспределенная.
Ответ отправила: Larsh (статус: 2-ой класс)
Ответ отправлен: 24.03.2008, 03:30 Оценка за ответ: 3 Комментарий оценки: Ну во первых в вопросе я указал что мне нужно именно 8 версия, а во вторых я не нашел в 7 версии функции "ВСтрокуВнутр"
Вопрос № 128.481
У меня в документе Заказ 1С7.7 именился алгоритм расчета стоимости. Процедура РасчетСтоимости() находится в модуле формы, кнопка вызова в диалоге формы документа. Вопрос: Как мне из внешней обработки выбрать 2000 документов, пересчитать стоимость заказа, записать и провести документы? Пытался через ОткрытьФорму, через FormEx, никак что-то не получается. Спасибо большое.
Отправлен: 21.03.2008, 21:06
Вопрос задал: Ginar (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Астафьев Александр Николаевич
Здравствуйте, Ginar! Возьмите за пример-основу любую внешнюю обработку печати документов в 1С 7.7 (пример в приложении) Туда передается как параметр документ из которого вы открываете обработку.В обработке перебираете что надо , из обработки обращаетесь к документу и меняете в нем что хотите. В модуле формы напишете:
ОткрытьФорму("Отчет", Контекст, КаталогИБ()+"ExtFormsздесьимяобработки.ert");
Приложение:
Ответ отправил: Астафьев Александр Николаевич (статус: Студент)
Ответ отправлен: 22.03.2008, 08:18 Оценка за ответ: 4 Комментарий оценки: Ответ немного не по теме, но интересный. Спасибо за участие и внимание.
Отвечает: Дмитрий Сташенко
Здравствуйте, Ginar!
А зачем вам ОткрытьФорму()? Попробуйте ВыполнитьПроцедуру() FormEx`a
ВыполнитьПроцедуру(>,,)
Синтаксис:
ВыполнитьПроцедуру(<Контекст>,<ИмяПроцедуры>,<СписокАргументов>)
Назначение:
Метод предназначен для выполнения процедуры в заданном контексте.
Возвращает 1 в случае успеха, 0 - в противном случае.
Пареметры:
<Контекст> - необязательный параметр. Контекст, в котором необходимо выполнить процедуру.
По умолчанию выполняется в текущем контексте.
<ИмяПроцедуры> - строка с именем процедуры.
<СписокАргументов> - необязательный параметр. Список значений, содержащий аргументы
процедуры. Если размер списка меньше, чем количество аргументов процедуры или параметр
опущен, то в оставшиеся аргументы передаются пустые значения. Лишние значения игнорируются.
Значения по умолчанию игнорируются.
Пример:
Перем Конт;
Сервис = СоздатьОбъект("Сервис");
ОткрытьФорму(Обработка.Демо, Конт);
Список = СоздатьОбъект("СписокЗначений");
Список.ДобавитьЗначение("Первый параметр");
Список.ДобавитьЗначение("Второй параметр");
Список.ДобавитьЗначение("Третий параметр");
Сервис.ВыполнитьПроцедуру(Конт, "Выполнить2", Список);
То есть во внешней обработке где-то так: см. приложение
Как видите, в приложении ВыполнитьПроцедуру() вызывается без 3-го параметра. Если все же нужно передать аргументы в процедуру РасчетСтоимости(), то тогда надо заполнить СписокЗначений из Док.ТекущийДокумент() до вызова ВыполнитьПроцедуру, и передать его в качестве 3-го параметра.
Будут вопросы, пишите. Удачи
Приложение:
Ответ отправил: Дмитрий Сташенко (статус: Студент)
Ответ отправлен: 22.03.2008, 11:21 Оценка за ответ: 4 Комментарий оценки: В таком виде у меня не получалось, пришлось добавить ОткрытьФорму(), Сервис.ВыполнитьПроцедуру() и SendKeys() из WScript.Shell. Спасибо за участие и внимание
Отвечает: Владимир Лазурко
Здравствуйте, Kravchenko, Alexandr, Viktorovich!
Демо-базу Вы можете найти на диске ИТС в разделе "Релизы программ и конфигураций", выбрав раздел с нужной Вам платформой и конфигурацией. Обычно с типовыми конфигурациями поставляется и демо-база. Она будет в списке шаблонов с пометкой (демо). Получив шаблон конфигурации для платформы 8.1, Вы можете затем создать новую демо-базу.
Как это сделать: 1. После установки нужной конфигурации с диска (ИТС или дистрибутива поставки Вашей конфигурации), запустите 1С:Предприятие 8.1, в окне списка выбора баз нажмите кнопку Добавить. 2. В следующем окне выберите пункт "Создание новой информационной базы" и нажмите кнопку "Далее". 3. После этого откроется следующая страница мастера со списком установленных на компьютере шаблонов конфигураций. Здеcь нужно выбрать пункт "Создать информационную базу из шаблона:" и в дереве списка баз ниже выбрать нужный шаблон, а в раскрывшемся списке демо-базу на основе указанной конфигурации.
Например, у меня в этом окне есть группа "Управление торговлей для Украины", из неё раскрывается список из ещё двух шаблонов - "Управление торговлей для Украины" и "Упрвление торговлей для Украины (демо)".
При раскрытии каждого пункта открывается ещё один уровень со списком релизов конфигурации (у меня это 2.2.4.4 и 2.2.6.4). Его-то и нужно выбрать, а затем нажать кнопку "Далее". 4. На следующем этапе Вы можете указать имя базы в списке баз и указать, где она будет находиться - на данном компьтере, на другом компьютере в локальной сети или на сервере 1С:Предприятия и нажать кнопку "Далее". 5. Теперь нужно будет указать каталог расположения информационной базы и нажать кнопку "Готово". Система создаст демо-базу из указанного Вами шаблона.
Если у Вас нет дисков ИТС или поставки конфигурации, обратитесь к партнерам фирмы "1С".
С уважением, Владимир.
Приложение:
Ответ отправил: Владимир Лазурко (статус: Студент)
Ответ отправлен: 23.03.2008, 21:31