Как система 1с предприятие выполняет обращение к ссылочным данным
Мы уже познакомились с таким понятием, как объект в 1С , следующим шагом будет логично познакомиться с таким понятием, как ссылка в 1С.
Ссылка указывает на данные экземпляра объекта, но не хранит их, т.е. получив ссылку на конкретный экземпляр объекта, мы сможем узнать всю информацию об экземпляре этого объекта, но не сможем внести какие-нибудь коррективы в эту информацию.
Мы помним, что в платформе 1С 8.3. существуют три вида объектов. Это объекты метаданных, общие объекты и универсальные коллекции значений.
Так вот, ссылка может быть только у объектов метаданных.
Замечу что, ссылка указывает не на сам объект, а на экземпляр объекта. Хотя, очень часто употребляют выражения «ссылка объекта», «ссылка на объект» и т.п.
Все ссылки объектов имеют тип СправочникСсылка. , ДокументСсылка. и т.д.
Ссылку можно использовать в качестве переменной, и также ссылку можно указывать, как реквизит других объектов метаданных.
Например, в моей конфигурации есть справочник Контрагенты.
А также какой-то документ, пусть будет Оплата. И я могу какому-то реквизиту документа Оплата присвоить тип — ссылка на справочник Контрагент.
Это значит, теперь в документе Оплата можно хранить информацию о контрагенте, который сделал оплату.
Если мы используем ссылку в качестве реквизита какого-то объекта, то при редактировании экземпляра, на который указывает ссылка, сам реквизит не изменится.
Поясню на примере. Я выше создал документ Оплата и реквизит Оплативший для этого документа с типом СправочникСсылка.Контрагенты.
Если я переименую элемент справочника Контрагенты.
Затем, зайду обратно в выше созданный документ Оплата, то увижу, что отображение контрагента в реквизите поменялось автоматически.
Что это значит? Это не значит, что реквизит Оплативший элемента и сам элемент справочника Номенклатура поменялся автоматически. Нет, это значит, что данный реквизит хранит указатель на экземпляр объекта, который отображается посредством наименования. Поменяли наименование, поменялось только отображение, если бы поменяли какой-нибудь другой реквизит справочника Контрагенты, то пользователь бы ничего не заметил.
Получить ссылку 1С
Каким образом программно получить ссылку на экземпляр объекта, который уже есть в базе?
Сделать это можно несколькими способами: найти по коду, найти по наименованию, найти по реквизиту и найти по нескольким реквизитам через запрос. Я рассмотрю первые два метода.
Для демонстрации этих методов, на основной форме документа Оплата я создам команду «Установить контрагента», которую размещу в командной панели формы.
При выполнении этой команды я буду в поле Оплативший записывать определенного контрагента. Для этого я создам обработчики команды на клиенте и на сервере.
Первый способ получения ссылки: найти по коду, для поиска по коду необходимо использовать функцию менеджера объекта НайтиПоКоду.
Функция НайтиПоКоду вернёт ссылку на экземпляр объекта справочник Контрагенты, которому соответствует код 000000002. Почему мы задали код в виде строки, а не в виде цифры, например? Чтобы понять это, нужно открыть непосредственно редактор справочника Контрагенты в конфигураторе, перейти на закладку «Данные» и посмотреть, какой тип кода у этого справочника.
Тип кода у справочника Контрагенты — строка, поэтому код мы ищем по строковому значению.
Таким образом, данный код:
возвращает ссылку на справочник Контрагенты, код у которого 000000002. Если такой нет, возвращается пустая ссылка (о них ниже), если с таким кодом несколько элементов, то возвращается один из них, какой конкретно — предугадать невозможно, платформа выберет элемент по своим внутренним идентификаторам.
Рассмотрим синтаксис этой функции для менеджера справочника:
Код – непосредственно тот код, по которому мы ищем наш элемент;
ПоискПоПолномуКоду — если стоит параметр Истина, то поиск будет вестись по кодам всей иерархии, т.е. Вам необходимо будет указывать код каждой группы, куда входит элемент через флеш. Например, так: 001/005/110, где слева будет располагаться самая верхняя группа, а справа непосредственно код элемента.
Данное поле необязательно, по умолчанию – Ложь;
Родитель – для иерархических справочников можно указать группу, тогда поиск будет вестись внутри группы. Данное поле необязательно;
Владелец – для подчиненных справочников можно указать владельца, тогда поиск будет вестись только среди элементов, подчиненных данному владельцу. Данное поле необязательно.
Второй способ получения ссылки: найти по наименованию, для поиска по наименованию необходимо использовать функцию менеджера объекта НайтиПоНаименованию.
Этот способ можно применить только для тех объектов, у которых имеется стандартный реквизит Наименование.
Например, у справочников этот реквизит имеется.
А у документов его нет.
В случае этой функции, поиск ведется по тому значению, которое в поле Наименование объекта
Синтаксис функции для менеджера справочника следующий:
«Наименование» – непосредственно то наименование, по которому мы ищем наш элемент;
«ТочноеСоответствие» — если стоит параметр Ложь, то поиск будет вестись не точно, т.е. когда левая часть наименования элемента и строка поиска будут совпадать (например, Металл и Металл 01), то поиск выдаст результат. Если стоит Истина, то будут найдены только те элементы, наименование которых будет точно совпадать со строкой поиска.
Данное поле необязательно, по умолчанию – Ложь.
Помните это, что по умолчанию поиск ведется не точно;
Параметры «Родитель» и «Владелец» точно такие же, как для процедуры НайтиПоКоду.
Пустая ссылка 1С
У Вас уже, наверное, назрел вопрос: что будут возвращать методы НайтиПоКоду, НайтиПоНаименованию, если такой элемент справочника не был найден. Они будут возвращать Пустую ссылку. Пустая ссылка — это пустое значение какого-нибудь справочника или документа. У менеджеров справочника или документа есть методы, которые возвращают пустую ссылку соответствующих объектов.
Выглядит он так:
ПустаяНоменклатура= Справочники.Номенклатура.ПустаяСсылка();
ПустаяОплата = Документы.Оплата.ПустаяСсылка();
Переменные ПустаяНоменклатура и ПустаяОплата содержат в себе пустые ссылки на каждый объект.
Обращаю Ваше внимание, что для каждого вида справочника и каждого документа будет своя собственная пустая ссылка.
Данный метод очень удобно использовать, когда нам необходимо знать, найден ли элемент справочника по коду (названию) или нет.
ПустаяСсылка() – это метод менеджера объекта. Также есть метод ссылки объекта Пустая(), который возвращает тип булево. Истина — если это пустая ссылка. Код выше можно переделать:
Метод Пустая() удобно использовать работая в клиентском контексте (в том числе на тонком клиенте), потому что менеджер объекта это «тяжелый» объекта и с ним можно работать только в серверном контексте. Т.е. установку контрагента можно сделать таким способом:
В этом коде я получаю по наименованию ссылку на нужного контрагента, делаю это в серверном методе, поскольку обращаюсь к менеджеру справочника, записываю если он не пустой, а потом в клиентском методе проверяю, найден контрагент по такому наименованию или нет, если не найден то вывожу предупреждение.
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
Вощем, я люблю фантастику, да. И, думая, чтобы мне почитать - мне в мозг пришла мысль о творениях Глуховского "Метро-2033". Почему то на слуху было это название. Загуглив, я увидел хвалебные отзывы: "Иксклюзив! Бистселлер! Уруруру! Как охуенно!". Хм, надо почитать.
Так вот. Лютое, дикое, беспросветное говнище, написано школьником для школьников, нелогичное, неинтересное, не страшное, неточное, не смешное, какая-то блять пурга из мутантов оружия хуеружия "глубинного смысла". Но главный минус - это язык. Аффтар не владеет литературным языком. Вообще. Как это блять напечатали в книгу? Это фанфик, не более.
Все, блять, отдает лубочностью. Главный герой - школьник (ну надо же целевую аудиторию привлечь), не такой как все, зато с автоматом. Место действия - Загадочное И Таинственное постьядерное Метро. В качестве врагов - другие люди (хоспаде, они с таким энтузиазмом убивают друг друга, что удивительно, как они не выкосили друг друга то за столько лет), мутанты (пиздец, мутанты от радиации. Ага, бомба ебнула, всех людей убила, а на следующий день по поверхности уже мутанты ползали. Бывает, чо уж там), галлюцинации, а в кремле тусят демоны. Ох ты ж блять, мистика.
Аватар не забыл добавить в свой высер глобальный и "внезапный" сюжетный поворот - черные мутанты, которые типа плохие, на самом деле хорошие, а прохие - это люди, которые загандошили их нахуй искандерами.
Более мелкие "внезапные" повороты - да на каждом, блять, шагу, одни сплошные рояли из кустов. Кароч, что купил эту книгу - тот долбоеб. В своем рейтинге я ставлю 5/10. Кто-то скажет, что это много? Нет, это уровень порно-фанфиков про Гарипотера (нравятся мне они). Гааааавно.
Метро 2034 - те же яйца, только в профиль. Сюжет по прежнему остался рояльным. Стилистика языка выправилась. Стало больше паранормальщины (зачеееем?), и глубинных размышлений автора (я уже говорил, что жизненная позиция автора кажется мне школьной?). Читать это не надо.
Из интересного - у одного из героев, музыканта, есть флейта. Хуй с ней, что она ЧЕРНАЯ с медными клавишами - ну мало ли извращенцев бывает, вон ставят на запорожец движок от волги, и ничо. Но от фразы "Когда затихли последние аккорды. " Для самых маленьких читателей, аккорд - это одновременное звучание 3 и более нот. Как это сыграть на одной флейте? Ну да похуй.
Вощем, сегодня я вам рассказал, что "Метро-2033" и "Метро-2034" от Глуховский Дмитрий Алексеевич - гавнище. Экономьте своё время, и читайте годные книжки, и все будет хоккей. Чао!
1С-ное.(Заметки быдло-ученика-погромиста), 15 занятие.
Объект конфигурации План Видов Характеристик предназначен для описания структуры хранения информации о характеристиках, создаваемых пользователем. На его основе платформа создает в базе данных набор таблиц, в которых будет храниться информация о существующих видах характеристик и типе значения характеристики каждого вида.
Основное отличие плана видов характеристик заключается в том, что для каждой характеристики хранится тип значения, который она может принимать;
Тип значения характеристик – определяет составной тип данных, куда входят все типы, которые могут понадобиться при указании типа значения характеристики; Служит для задания возможных типов значений.
Это можно сделать, используя следующую логическую схему: план видов характеристик, который хранит виды характеристик, которыми в принципе можно описывать материалы;
Специальный справочник, подчиненный справочнику с объектами, к которым будет приписываться характеристика, данный спецсправочник будет идентифицировать объекты с некоторым фиксированным набором значений характеристик;
Регистр сведений, в котором хранится соответствие конкретных значений характеристик к некоторому варианту объекта.
Связь по параметрам выбора обеспечивает то, что при выборе значений для выбора будут предлагаться только те, которые относятся к выбранной характеристике, а не все, что есть в справочнике;
Для этого переходим в справочник, на закладке «Данные» находим кнопку «стандартные реквизиты», выбираем нужный реквизит и в палитре свойств можем вписать синоним.
Переходим в форму, кликаем (очень аккуратно) таким образом, чтобы выделить именно всю форму, правый клик и в панели свойств появится окошко «заголовок».
Удалить эти элементы в окошке создания и редактирования формы. Они будут в окошке «Элементы», это правое верхнее окошко.
Сделать ссылку на набор свойств с помощью свойства элемента «ПутьКДанным» - установка связи элемента формы с реквизитом формы.
Язык 1С сильно «завязан» на работу с данными. Действительно, основная задача — обработка данных, полученных из базы данных запросом или другими способами.
В других языках с данными, полученными из базы данных обычно работают «как с таблицей». В 1С такое тоже возможно – выполнить запрос, получить «в ответ» таблицу и работать с ней.
Однако более распространенный способ, одна из «фишек 1С» — это работа с данными как с объектами 1С. Например объект 1С Справочник.ИмяСправочника позволяет работать с конкретным справочником, при этом объект 1С имеет свойства (поля с данными) и стандартные методы.
Работа с объектом 1С ведется тогда, когда требуется создать объект 1С или изменить существующий. В остальных случаях (например поиск объекта 1С, использование его в другом объекте 1С) – используется ссылка 1С на объект 1С.
Создание объектов 1С
Объект 1С можно создать с помощью оператора Новый, при этом вызывается конструктор данного типа, если у типа несколько конструкторов – он выбирается по указанным параметрам:
Переменная1 = Новый СписокЗначений();
Менеджеры для получения объектов 1С из базы данных
Если требуется создать объект 1С, связанный с данными в базе данных (то есть фактически получить его из базы данных), вместо использования оператора Новый, используются менеджеры.
Почти для каждого вида метаданных (отображенного в дереве метаданных в окне конфигурации, см. выше) доступен одноименный менеджер, который позволяет получить значение из базы данных по признаку или создать новое для записи в базу данных.
Например:
Переменная1 = Справочники.ИмяСправочника.СоздатьЭлемент();
Переменная1 = Справочники.ИмяСправочника.НайтиПоНаименованию("Наименование");
Ссылки 1С и объекты 1С
Работа с объектами 1С, связанными с данными в базе данных может вестись двумя способами – с помощи «ссылки 1С на данные» и объекта 1С.
Ссылка 1С – это данные, доступные только для чтения. Объект 1С – это данные, доступные для чтения, изменения и записи. Работа со ссылкой 1С производится гораздо быстрее, чем с объектом 1С.
Ссылка 1С на данные получается с помощью функций вида:
СправочникСсылка = Справочники.ИмяСправочника.НайтиПоНаименованию()
Объект 1С можно получить из ссылки 1С или создать с нуля:
СправочникОбъект = СправочникСсылка.ПолучитьОбъект();
СправочникОбъект = Справочники.ИмяСправочника.СоздатьЭлемент();
Пустая ссылка 1С
Ссылка может быть пустой, это значит, что создан «пустой» экземпляр объекта 1С, который не связан с данными.
СправочникСсылкаПустая = Справочники.ИмяСправочника.ПустаяСсылка();
Также ссылку 1С можно проверить на заполненность:
Если СправочникСсылка.Пустая() Тогда
//…
КонецЕсли
Уникальный идентификатор (GUID)
Любой элемент справочника или документ хранится в базе данных. Для идентификации он имеет уникальный «номер» в рамках базы данных — GUID. В понятиях встроенного языка 1С, этот GUID – это ссылка 1С.
Узнать идентификатор можно с помощью универсального метода любого объекта 1С ссылочного типа:
СправочникСсылка = Справочники.ИмяСправочника.НайтиПоНаименованию("Наименование");
GUID = СправочникСсылка.УникальныйИдентификатор();
Возвращаемое значение данного метода имеет специальный тип. Если необходимо сравнивать значение со строкой, не забудьте преобразовать его к строке с помощью Строка(Параметр).
GUID назначается в момент первой записи объекта 1С. Уже до записи можно узнать GUID, который будет назначен объекту 1С при записи:
Также перед записью можно назначить свой GUID. Это бывает полезным, например, при обмене данными:
При работе со значениями, возможно столкнуться со следующими способами хранения и доступа к данным:
- Переменная – созданная в модуле программистом, нетипизированная
- Реквизит объекта 1С (справочника, документа), добавленный в конфигураторе – хранится в базе данных, строго типизирован
- Реквизит формы – поле на форме, строго типизирован.
Поле на форме показывает «какие-то данные». Данные могут быть напрямую связаны с реквизитом объекта 1С (указаны в свойстве поля формы ПутьКДанным).
Также форма может иметь свои реквизиты, они не записываются в базу данных, их устанавливает программист в процедурах и функциях модуля формы (обычно в процедуре обработчике ПриОткрытии формы).
Доступ к значениям именованных свойств объектов 1С
У многих объектов 1С есть свойства, которые имеют наименования.
Например:
- элемент справочника имеет реквизиты с наименованиями
- форма имеет реквизиты с наименованиями
- у таблицы есть колонки с наименованиями
- у строки таблицы есть поля с такими же наименованиями, как колонки у таблицы.
Если у объекта 1С есть свойства (реквизиты, колонки и т.п.), у которых есть наименования, то к ним можно обращаться двумя способами.
Если в наличии имеются два объекта 1С с именованными свойствами и нужно скопировать их значения, удобно использовать процедуру
ЗаполнитьЗначенияСвойств(КудаКопировать, ОткудаКопировать)
которая копирует значения всех свойств, имена которых совпадают, пример:
Урок 1 - Роль и место запросов в системе 1С Предприятие
В системе 1С Предприятие 8 существует две модели представления данных: объектная и табличная. Типичный метод использования объектной модели выглядит примерно так:
То же действие, но с обращением к табличной модели:
Таким образом, у обеих моделей есть свои достоинства и свои недостатки. Объектная модель хороша, прежде всего, тем, что она чрезвычайно лаконична: если поступиться «читабельностью», простейшие выборки можно получать всего одной строкой кода! Табличная модель значительно уступает по данному критерию объектной, зато имеет ряд неоспоримых преимуществ.
Табличная модель обеспечивает:
- Гибкость: получение сложно-организованных выборок, использование сложных условий, управление блокировками;
- Использование конструктора: повышение скорости написания запроса, уменьшение вероятности появления синтаксических и логических ошибок.
Урок 1 - Конструктор запросов 1C
Одним из самых мощных инструментов 1С Предприятия, без сомнения, является конструктор запросов. Конструктор является визуальным средством для работы с запросами. Поэтому знакомиться с ним мы будем тоже наглядно, с помощью иллюстраций.
Сразу оговоримся, что поместить главу о конструкторе в самом начале курса - решение неоднозначное. Если развивать тему использования запросов строго последовательно, знакомиться с конструктором следовало бы в самом конце, после того, как будут изучены все остальные свойства запросов. Но дело в том, что большую часть запросов мы будем «собирать» именно с помощью конструктора. В этом случае, проблема похожа на извечный вопрос: что было раньше, яйцо или курица? Всё-таки, мы решили начать с конструктора.
Изучать устройство конструктора мы будем на примере универсальной обработки Консоль запросов. Эта обработка входит в состав типовых конфигураций 1С, поэтому её так же вполне можно назвать типовым инструментом.
Урок 3 - Источники данных 1С
Все объекты базы данных 1С (справочники, документы, регистры и т, д.) имеют своё табличное представление, и это вполне объяснимо. В самом деле, физически, вся информация хранится в базе данных в виде плоских таблиц. Никак иначе быть не может, потому что такова природа реляционных баз данных. Следовательно, если предоставить разработчику прикладного решения доступ напрямую (ну, или, почти напрямую) к таблицам, никакого нарушения логики работы с данными не случиться. Более того, поскольку в данном случае мы работаем непосредственно с таблицами, в качестве полезного побочного эффекта можно ожидать повышения быстродействия в сравнении с объектной моделью.
Теперь, когда мы определились с тем, что же такое табличная модель данных 1С:Предприятия пора рассмотреть ещё одно понятие, непосредственно с нею связанное. Речь идёт о виртуальных таблицах. Кроме таблиц, действительно существующих в базе, о которых мы говорили до сих пор, (они так и называются, Реальными) в системе вводится понятие Виртуальных таблиц. Физически, никаких новых мистических таблиц в базе, конечно же, нет. Просто обращение к виртуальной таблице автоматически преобразуется механизмом запросов в обращение к таблице реальной. Алгоритм преобразования может весьма изощренным, но нам (разработчикам) это никаких особых хлопот не доставляет. Нам важно то, что виртуальные таблицы на практике почти неотличимы от реальных.
Приветствую, коллеги! В данной статье будет рассмотрена работа с объектами и ссылками в 1С 8.3, в том числе я расскажу о том, как получать объект по ссылке и наоборот – ссылку из объекта.
Ни для кого не секрет, что в системе 1С очень многое держится на привязке различных типов данных, так как главной задачей языка 1С является обработка данных, которые были получены при помощи запроса.
Чаще всего в 1С данные представляются в виде объектов, хотя бывают случаи, когда данные выступают в роли таблицы. Например, рассмотрим объект «Справочник.ИмяСправочника»: он регулирует работу с определённым справочником, но и у самого объекта есть в наличии свойства (в данном случае – это поля с данными), а также присутствуют методы.
Объект в системе 1С создаётся при помощи специального оператора «Новый», после чего используется соответствующий конструктор для создания объектов. Если у типа объекта может существовать несколько конструкторов, то конструктор для создания объекта будет избран при помощи параметров, как показано в строке программного кода ниже:
Рис. 1 Выбор конструктора объектов для создания объектов
2. Менеджеры получения объектов системы 1С
Если необходимо создать объект 1С, который будет иметь связь с базой данных, то используются особые менеджеры, а не оператор «Новый».
Для всех видов метаданных есть соответствующий менеджер объектов 1С, который осуществляет получение значения из базы с данными, опираясь на признак, либо создание новой базы. Пример кода с созданием объекта через менеджер указан ниже:
Рис. 2 Создание объекта менеджером в 1С
3. Ссылки и объекты в 1С 8.3
Работа с объектами системы 1С:Предприятие может производится при помощи ссылки на данные, либо при помощи самого объекта.
Ссылки в языке 1С – это особые данные, которые можно только считывать. А объект в языке 1С – это данные, которые можно и считывать, и менять, и записывать.
Работа с ссылками выполняется гораздо быстрее, нежели с объектами.
Чтобы получить ссылку на объект, в 1С можно воспользоваться функцией, которая имеет следующий вид:
Рис. 3 Функция, чтобы получить ссылку на объект в 1С
Чтобы получить объект по ссылке, нужно воспользоваться функцией следующего вида:
Рис. 4 Функция, чтобы получить объект по ссылке
Также его можно создать с нуля при помощи следующей функции:
Рис. 5 Вариант функции получения объекта по ссылке
4. Как получить объект по ссылке?
Пускай некоторая переменная «СсылкаНаОбъект» принадлежит какому-то типу ссылки. Это может быть справочник, документ, план по счетам и так далее. Опираясь на это, мы используем специальную функция для того, чтобы получить объект по ссылке в 1С. Выглядит она следующим образом:
Рис. 6 Использование переменной СсылкаНаОбъект
5. Получение ссылки по объекту в 1С 8.3
Рассмотрим обратную процедуру, а именно: получение ссылки из объекта. Пусть есть некоторая переменная «Объект», которая является каким-то из объектных типов, тогда функция для получения ссылки из объекта будет выглядеть так:
Рис. 7 Переменная СсылкаНаОбъект для получения ссылки по объекту
Следует отметить, что реквизит «Ссылка» в 1С может быть заполнен только во время записи самого объекта. В случае, если объект не был прописан, то и соответствующей ссылки существовать не будет.
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Программирование в 1С [1] => 1С:Бухгалтерия [2] => 1С:Управление производственным предприятием [3] => 1С: Розница [4] => 1С: CRM [5] => 1С: Управление торговлей [6] => Бюджетирование [7] => СКД [8] => 1С: Конвертация данных [9] => Администрирование 1С [10] => Конвертация данных [11] => Лицензии 1С [12] => Оптимизация [13] => 1С: Документооборот [14] => 1С: ERP [15] => Транспортная логистика [16] => Техническое задание [17] => Продажи [18] => Ценообразование [19] => Планирование [20] => MS SQL Server [21] => Полезные обработки [22] => МСФО [23] => Отчеты в 1С [24] => XML [25] => Внедрение ERP [26] => Перенос данных [27] => Торговое оборудование [28] => РСБУ [29] => 1С:Управление корпоративными финансами [30] => 1С: Колледж [31] => 1С: Аренда и управление недвижимостью [32] => Финансовый учет ) -->
Читайте также: