Здравствуйте! В моём распоряжении есть разработка, которую надо поправить. Сама разработка представляет из себя сайт, с помощью которого агенты создают заказы. Сайт имеет подключение к нашей базе 1С:

```1c
    <add name="1c_81" path="1cws" verb="*" modules="IsapiModule" scriptProcessor="C:\Program Files (x86)\1cv81\bin\wsisapi.dll" resourceType="Unspecified" preCondition="bitness32" />
```

Все работает с помощью пост запросов:

```1c
    function srvXml(outXml) {
    webAppUrl = "a909.aspx?1";
    req = new XMLHttpRequest();
    try {
    req.open("POST", webAppUrl, false);
    req.send(outXml);
    if (req.status == 200) {
    xd = req.responseXML;
    }
    }
    catch (e) {
    xd = null;
    alert("Не удалось получить ответ от сервера !" + "\n" + e.Message);
    }

    return xd;
    }
```

В эту функцию приходит outXml и возвращается ответ, который потом разбирается.
Всё вроде просто, но есть один нюанс, автор этого творения не захотел в комментарии и я благодаря этому вогнал себя в ступор, а именно:

```1c
    outXml = "<r a=\"8_2014\" b=\" + window.sessionStorage.spy + "\" c=\" + day2 + "\" d=\" + day2 + "\" />";
```

где window.sessionStorage.spy - это айди авторизованного агента; day2 - текущая дата (введена мною), ну а что такое параметр "a=\"8_2014\" я могу только догадываться, предполагаю, что эта конкретная таблица в базе. В этом и есть суть вопроса, что это за параметр и куда глядеть, залез в скуль и ничего толком не увидел для себя.
Ответ на такой запрос будет:

```1c
    <localhost>

    <?xml version="1.0"?>
    <r>
    <d a="Д0116229" b="23.01.2017" c="ООО Рога и Копыта/Основной договор" d="5385,48" e="0" f="15d83bb2-e136-11e6-bb77-00259088b2af" g="/>
    </r>
```

Где "а" - номер заявки, "b" - дата заявки, "с" - наименование клиента и выбранный договор, "d" - сумма накладной, "e" - признак проведения, "f" - скорее всего ссылка на данный документ, а "g" - признак отгрузки, а мне очень нужен адрес куда отгружают.
Из-за того, что я не понимаю, что такое "a=\"8_2014\", я не понимаю, почему возвращается именно такой набор данных и где собственно адрес искать непонятно. Пытался вслепую менять этот параметр, но получал чаще всего пустой ответ.
Буду весьма благодарен любым мыслям по моему вопросу. Спасибо.
---
это веб-сервис, у него есть процедура в модуле 1С. В чем проблема остановиться в ней отладчиком?
---
это веб-сервис, у него есть процедура в модуле 1С. В чем проблема остановиться в ней отладчиком?
---
Наверное в том, что я об этом не знал, что такая процедура есть. Сейчас я это увы сделать не могу, так как если включить отладку на сервере, то меня полюбят как минимум агенты. А это уже повод в рабочее время так не делать)
---
a909.aspx?1 - эта штука вернет урл и, судя по всему, это еще не 1с-ный.
---
Эта вся ерундовина написана на ASP.NET и очень весело, на сервере аж три проекта крутятся, 2 из которых работают, чтобы a909.aspx?1" отдала правильную ссылку. Собственно даже точка останова для отладки этого не надо, спасибо вам, в конфе нашёл вот такую красотулю:

```1c
    function f8_2014(xdIn) export // документы агента

    agent = catalogs.Проекты.findByCode(xdIn.documentElement.getAttribute("b"));
    d1 = begOfDay(date(xdIn.documentElement.getAttribute("c")));
    d2 = endOfDay(date(xdIn.documentElement.getAttribute("d")));

    qrText = "ВЫБРАТЬ
    | doc.Номер,
    | doc.Дата КАК Дата,
    | doc.Контрагент.Наименование,
    | doc.ДоговорКонтрагента.Наименование,
    | doc.СуммаДокумента,
    | doc.Ссылка,
    | ВЫБОР
    | КОГДА doc.Проведен
    | ТОГДА "1"
    | ИНАЧЕ "0"
    | КОНЕЦ КАК Проведен,
    | ВЫБОР
    | КОГДА ВложенныйЗапрос.ПризнакОтгрузки = Неопределено
    | ТОГДА "0"
    | ИНАЧЕ ВложенныйЗапрос.ПризнакОтгрузки
    | КОНЕЦ КАК Отгружен
    |ИЗ
    | Документ.ЗаказПокупателя КАК doc
    | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    | ЗаказыРеализации.Заказ.Ссылка КАК ЗаказСсылка,
    | "1" КАК ПризнакОтгрузки
    | ИЗ
    | РегистрСведений.ЗаказыРеализации КАК ЗаказыРеализации
    | ГДЕ
    | ЗаказыРеализации.ВРеализации
    | И ЗаказыРеализации.Реализация.Проведен) КАК ВложенныйЗапрос
    | ПО doc.Ссылка = ВложенныйЗапрос.ЗаказСсылка.Ссылка
    |ГДЕ
    | doc.Проект = &agent
    | И doc.Дата МЕЖДУ &d1 И &d2
    |
    |УПОРЯДОЧИТЬ ПО
    | Дата УБЫВ";

    qr = new Query(qrText);
    qr.setParameter("agent", agent);
    qr.setParameter("d1", d1);
    qr.setParameter("d2", d2);
    qs = qr.execute();
    sel = qs.choose();

    xd = new DOMDocument;
    root = xd.createElement("r");
    xd.appendChild(root);

    //// непроведённые наверх:
    //
    //vtUnPosted = unPosted(agent);
    //
    //for each vtLine in vtUnPosted do
    // el = xd.createElement("d");
    // el.setAttribute("a", trimall(vtLine[0]));
    // el.setAttribute("b", trimall(format(vtLine[1],"DF=dd.MM.yyyy")));
    // el.setAttribute("c", trimall(vtLine[2])+"/"+trimall(vtLine[3]));
    // el.setAttribute("d", trimall(format(vtLine[4], "NG=")));
    // st = trimall(vtLine[5]);
    // el.setAttribute("e", ?(st = ", "0", st));
    // el.setAttribute("f", trimall(vtLine[6].UUID()));
    // root.appendChild(el);
    //endDo;
    //
    // теперь поведённые:

    while sel.next() do
    el = xd.createElement("d");
    el.setAttribute("a", trimall(sel[0])); //номер накладной
    el.setAttribute("b", trimall(format(sel[1],"DF=dd.MM.yyyy"))); //дата накладной
    el.setAttribute("c", trimall(sel[2])+"/"+trimall(sel[3])); //адрес доставки и клиент
    el.setAttribute("d", trimall(format(sel[4], "NG="))); //сумма накладной
    el.setAttribute("e", trimall(sel[6])); //признак проведения
    el.setAttribute("f", trimall(sel[5].UUID())); //идентификатор накладной
    el.setAttribute("g", trimall(sel[7])); //признак отгрузки
    root.appendChild(el);
    enddo;

    return XMLDOMtoString(xd);

    endFunction
```

Радости полные штаны, большое спасибо!) Не знаю почему я сразу об этом не додумался, глупый видимо ещё)
---
здесь отправляется хмлкаreq.send(outXml); в некий прокси, который переделает запрос в понятный 1с
---
этот запрос содержит сведения для 1С и для прокси, который должен понять, какой сервис 1с вызвать outXml = "<r a=\"8_2014\" b=\"" + window.sessionStorage.spy + "\" c=\"" + day2 + "\" d=\"" + day2 + "\" />";

значить непонятный реквизит - это некий релиз контракта с 1с от августа 2014 года
---
чтоб поменять контракт придется менять код или настройки этой прокси, урл ее возвращает a909.aspx?1
---
тру-программер пейсал